Ensure that waitForAll functions catch and log thrown errors

This commit is contained in:
Scott Nonnenberg 2022-04-11 10:53:57 -07:00 committed by GitHub
parent 45fcf827dd
commit 9e54f55c22
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 5 deletions

View file

@ -5,6 +5,7 @@ import PQueue from 'p-queue';
import { sleep } from './sleep';
import * as log from '../logging/log';
import * as Errors from '../types/errors';
import { clearTimeoutIfNecessary } from './clearTimeoutIfNecessary';
declare global {
@ -20,7 +21,15 @@ declare global {
window.batchers = [];
window.waitForAllBatchers = async () => {
await Promise.all(window.batchers.map(item => item.flushAndWait()));
log.info('batcher#waitForAllBatchers');
try {
await Promise.all(window.batchers.map(item => item.flushAndWait()));
} catch (error) {
log.error(
'waitForAllBatchers: error flushing all',
Errors.toLogFormat(error)
);
}
};
export type BatcherOptionsType<ItemType> = {