我有我的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()
?
谢谢
答案 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
}
});