可选参数对象,once 默认值false
对 同一个 promise 的多次调用,保证只调用一次,待第一次调用成功后,其余的才继续执行 一般使用方法: 采用 队列的使用进行处理,保证多次调用只会请求一次 首次调用 那么会创建队列,之后的请求,会使用队列进行阻塞,待第一次完成,再继续执行
// 提供给外部调用的方法
async function syncServerTime(isSecond = false) {
return new Promise(async(resolve, reject) => {
const [err, res] = await uni.hua5Utils.to(queueSyncServerTime.handler(isSecond))
// 请求的最终结果
resolve(res)
})
}
// 采用队列的方式进行网络请求
const queueSyncServerTime = new InterceptQueue(awaitSyncServerTime)
// 请求方法
async function awaitSyncServerTime(isSecond) {
return new Promise(async(resolve, reject) => {
const [err, res] = await getServerTimestamp()
if (err) resolve("")
resolve(res)
})
}
Private await传入的拦截方法走了.then() 还是 .catch()
Private event等待时进入的放入数组中,执行后在释放
Private handler拦截器的失败信息
Private handler拦截器的成功信息
Private intercept拦截的方法 promise,必须存在resolve或者reject
Private is是否已经加载过
Private is是否是在请求等待中
Private once是否只执行一次,true:执行成功后往后在调用都不会拦截了
Private loadingGenerated using TypeDoc
需要被拦截的请求函数,它必须返回一个 Promise。