[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() { async function ensureWorkerPing() {
let isResolved = false;
try { try {
await Promise.race([ await Promise.race([
makeRequest({ type: 'ping' }), 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) { } catch (err) {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
@ -182,5 +185,7 @@ async function ensureWorkerPing() {
if (Date.now() - startedAt >= HEALTH_CHECK_MIN_DELAY) { if (Date.now() - startedAt >= HEALTH_CHECK_MIN_DELAY) {
window.location.reload(); window.location.reload();
} }
} finally {
isResolved = true;
} }
} }

View File

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