Почему React Lazy Load Import Retry не работает в IE? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть ситуация, когда я хочу инициировать повторную попытку использования ресурсов, таких как chunk. js после развертывания, в случае сбоя, чтобы пользователь не видел пустой экран. Для чего я сделал следующее:

export const retry = (fn, retriesLeft = 5, interval = 1000) => new Promise((resolve, reject) => {
  fn()
    .then(resolve)
    .catch((error) => {
      if (retriesLeft === 0) {
        // reject('maximum retries exceeded');
        reject(error);
        return;
      }
      setTimeout(() => {
        // Passing on "reject" is the important part
        retry(fn, retriesLeft - 1, interval).then(resolve, reject);
      }, interval);
    });
});

const SomeComponent = React.lazy(() => retry(() => import('someComponent')));

Теперь это отлично работает с Chrome, когда какой-либо фрагмент. js не загружается, так как он ударяется 5 раз. (Блокировать любой фрагмент. js вызов из Dev Tool для локального наблюдения за поведением)

Но с IE 11 повторная попытка не происходит вообще. Подскажите, пожалуйста, почему он так себя ведет.

Ссылка

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