Как продлить ионную загрузку до рендеринга страницы в ioni c -5 - PullRequest
0 голосов
/ 07 августа 2020

Мне нужно сделать 3 back-end api-call, прежде чем показывать экран UI. Итак, я использовал приведенный ниже фрагмент ion-loading:

Я представляю загрузчик в 1-м бэкэнд-вызове, и он закрывается в самом первом вызове. Но я должен закрыть загрузчик в третьем вызове API, чтобы показать экран.

Как продлить загрузчик до последнего вызова API,

this.presentLoading();

 async presentLoading() {
    this.loading = await this.loadingController.create({
      spinner: null,
      cssClass: 'custom-class custom-loading',
    });
    await this.loading.present();
  }

1 Ответ

0 голосов
/ 30 августа 2020

Один из способов выполнить sh - это вызвать .then() на loadingController.create(), а затем обработать все ваши вызовы api внутри. Вот как я бы организовал это так, чтобы ваш контроллер загрузки отключался должным образом либо при успешном выполнении трех вызовов API, либо при сбое одного из них. Эта настройка предполагает, что ваши функции вызова API возвращают обещания.

this.loadingController.create({
      message: 'Loading, please wait...'
    }).then((loading) => {

      loading.present();

      Promise.all([apiCallOne(), apiCallTwo(), apiCallThree()])
        .catch((err) => {
          console.log(err);
          loading.dismiss();
        })
        .then((results) => {
          // do something with results ...
          loading.dismiss();
        });

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...