Skip to content

延迟加载函数

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());
}