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

时间:2019-04-12 13:36:36

标签: ionic-framework ionic3

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

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Promise.race()

  

Promise.race()方法返回可解决或拒绝的承诺   一旦迭代中的承诺之一解决或拒绝,   带有那个承诺的价值或理由。

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
    }
});
相关问题