如何使用持续时间的加载控制器

How to use the Loading Controller with duration

我有我的 LoadingController :

const loader = this.loadCtrl.create({
     content: 'Loading ...',
     duration: 5000
});
loader.present();

刚接到 api 电话后

myApi.Function().then(res => {
   console.log(res);
}

我想在我的 api 通话结束时 dismiss 我的 LoadingController 或者 如果我的持续时间结束。

如何在持续时间后调用事件 loader.dismiss()

谢谢,

你可以使用 Promise.race()

The Promise.race() method returns a promise that resolves or rejects as soon as one of the promises in an iterable resolves or rejects, with the value or reason from that promise.

const delayPromise = new Promise(resolve => window.setTimeout(() => resolve(), 3000));
const apiPromise = myApi.Function();

const loader = this.loadCtrl.create({
     content: 'Loading ...',
});
loader.present();

Promise.race([delayPromise, apiPromise]).then(res => {
    loader.dismiss();

    if(res) {
        // apiPromise finished first
    } else {
        // delayPromise finished first
    }
});