[Refactoring] Avoid redundant promise rejections (2)

This commit is contained in:
Alexander Zinchuk 2022-08-17 10:34:45 +02:00
parent 2f7e2fc266
commit c4168aa441
2 changed files with 9 additions and 2 deletions

View File

@ -170,10 +170,13 @@ function setupIosHealthCheck() {
}
async function ensureWorkerPing() {
let isResolved = false;
try {
await Promise.race([
makeRequest({ type: 'ping' }),
pause(HEALTH_CHECK_TIMEOUT).then(() => Promise.reject(new Error('HEALTH_CHECK_TIMEOUT'))),
pause(HEALTH_CHECK_TIMEOUT)
.then(() => (isResolved ? undefined : Promise.reject(new Error('HEALTH_CHECK_TIMEOUT')))),
]);
} catch (err) {
// eslint-disable-next-line no-console
@ -182,5 +185,7 @@ async function ensureWorkerPing() {
if (Date.now() - startedAt >= HEALTH_CHECK_MIN_DELAY) {
window.location.reload();
}
} finally {
isResolved = true;
}
}

View File

@ -152,8 +152,9 @@ export async function requestPart(
const messageId = generateIdFor(requestStates);
const requestState = {} as RequestStates;
let isResolved = false;
const promise = Promise.race([
pause(PART_TIMEOUT).then(() => Promise.reject(new Error('ERROR_PART_TIMEOUT'))),
pause(PART_TIMEOUT).then(() => (isResolved ? undefined : Promise.reject(new Error('ERROR_PART_TIMEOUT')))),
new Promise<PartInfo>((resolve, reject) => {
Object.assign(requestState, { resolve, reject });
}),
@ -164,6 +165,7 @@ export async function requestPart(
.catch(() => undefined)
.finally(() => {
requestStates.delete(messageId);
isResolved = true;
});
client.postMessage({