JS promise 超时
/**
* promise 超时
*
* @param {*} p new Promise()
* @param {number} [timeout=0] 超时时间
* @returns
*/
export const promiseTimeout = (p, timeout = 0) => {
let timer = null
const timerPromise = new Promise((resolve, reject) => {
timer && clearTimeout(timer)
timer = setTimeout(() => {
// reject(new Error('promise time out'))
clearTimeout(timer)
resolve('')
}, timeout)
})
return Promise.race([p, timerPromise])
}