Почему React Lazy Load Import Retry не работает в IE?

У меня возникла ситуация, когда я хочу инициировать повторную попытку использования ресурсов, таких как 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, когда какой-либо из chunk.js не загружается, поскольку он ударяется 5 раз (заблокируйте любой вызов chunk.js из Dev Tool, чтобы наблюдать за поведением локально)

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

Справка

0 ответов

Другие вопросы по тегам