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

问题描述 投票:0回答:1

我有我的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()

谢谢,

ionic-framework ionic3
1个回答
1
投票

您可以使用Promise.race()

Promise.race()方法返回一个promise,一旦iterable中的一个promise解析或拒绝,就会使用该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
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.