MultiLoader-Template/node_modules/es-toolkit/dist/promise/delay.mjs
3944Realms 768f38fc97 feat: 可使用的构建模板
修改了脚本,使其可以推给Maven仓库
2026-05-03 13:02:19 +08:00

24 lines
658 B
JavaScript

import { AbortError } from '../error/AbortError.mjs';
function delay(ms, { signal } = {}) {
return new Promise((resolve, reject) => {
const abortError = () => {
reject(new AbortError());
};
const abortHandler = () => {
clearTimeout(timeoutId);
abortError();
};
if (signal?.aborted) {
return abortError();
}
const timeoutId = setTimeout(() => {
signal?.removeEventListener('abort', abortHandler);
resolve();
}, ms);
signal?.addEventListener('abort', abortHandler, { once: true });
});
}
export { delay };