У меня есть ситуация, когда я хочу инициировать повторную попытку использования ресурсов, таких как 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 повторная попытка не происходит вообще. Подскажите, пожалуйста, почему он так себя ведет.
Ссылка