Alexey Safronov
77b5986876
# Conflicts: # packages/client/src/routes/client.js # packages/client/src/routes/confirm.js # packages/client/src/routes/general.js # packages/client/src/routes/portalSettings.js # packages/common/package.json # packages/components/scrollbar/styled-scrollbar.js # packages/editor/package.json # packages/shared/package.json # packages/shared/utils/component-loader.ts
23 lines
533 B
TypeScript
23 lines
533 B
TypeScript
export default function componentLoader(
|
|
lazyComponent: Function,
|
|
attemptsLeft: number = 3
|
|
) {
|
|
return new Promise((resolve, reject) => {
|
|
lazyComponent()
|
|
.then(resolve)
|
|
.catch((error: unknown) => {
|
|
// let us retry after 1500 ms
|
|
setTimeout(() => {
|
|
if (attemptsLeft === 1) {
|
|
reject(error);
|
|
return;
|
|
}
|
|
componentLoader(lazyComponent, attemptsLeft - 1).then(
|
|
resolve,
|
|
reject
|
|
);
|
|
}, 1500);
|
|
});
|
|
});
|
|
}
|