UNPKG

ethers-tools

Version:

Contains tools for work with web3 contracts.

26 lines (23 loc) 622 B
/** * @param {number} ms * @param {AbortSignal[]} [signals=[]] * @returns {Promise<void>} */ export function waitWithSignals(ms, signals = []) { return new Promise((resolve, reject) => { const timeout = setTimeout(resolve, ms); if (signals) { function onAbort(signal) { clearTimeout(timeout); reject(signal.reason || new Error('Operation aborted')); } for (const signal of signals) { signal.addEventListener('abort', () => onAbort(signal), { once: true }); if (signal.aborted) { onAbort(signal); return; } } } }); }