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