Как использовать контроллер загрузки с продолжительностью - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть мой LoadingController:

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

Сразу после того, как у меня есть вызов API

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

Я хочу dismiss мой LoadingController, когда мой вызов API заканчивается ИЛИ если моя продолжительность заканчивается.

Как я могу назвать событие loader.dismiss() после продолжительности?

спасибо,

1 Ответ

1 голос
/ 12 апреля 2019

Для этого можно использовать 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
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...