[Refactoring] Avoid redundant promise rejections (2)
This commit is contained in:
parent
2f7e2fc266
commit
c4168aa441
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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({
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user