主题
延迟加载函数
js
export default class Delay {
constructor(delayTime) {
this.delayTime = delayTime;
}
getDelayFunc(otherTime) {
return new Promise((reslove) =>
setTimeout(() => reslove(), otherTime || this.delayTime)
);
}
setDelayTime(delayTime) {
this.delayTime = delayTime;
}
run(promise, otherTime) {
return new Promise((reslove, reject) =>
Promise.all([promise, this.getDelayFunc(otherTime)])
.then(([p1]) => reslove(p1))
.catch((e) => reject(e))
);
}
}
/**
* @description: setTimeout 的 promise 版
* @param {*} time 需要延时的毫秒
* @return {*} Promise
*/
export const delay = (time = 1000) =>
new Promise((r) => setTimeout(r, time, true));INFO
使用
js
import Delay from "@/util/func/delay";
const delay = new Delay(500);
function async func(){
await delay.run(self.loadingFun());
}