UNPKG

@freemework/common

Version:

Common library of the Freemework Project.

32 lines 1.24 kB
import { FCancellationExecutionContext, FCancellationException } from "../cancellation/index.js"; import { FExecutionContext } from "../execution_context/index.js"; export function FSleep(data, ms) { return fsleep(data, ms); } export function fsleep(data, ms) { const cancellationToken = data instanceof FExecutionContext ? FCancellationExecutionContext.of(data).cancellationToken : data; return new Promise((resolve, reject) => { if (cancellationToken.isCancellationRequested) { return reject(new FCancellationException()); } let timeout = null; if (ms !== undefined) { function timeoutCallback() { cancellationToken.removeCancelListener(cancelCallback); return resolve(); } timeout = setTimeout(timeoutCallback, ms); } function cancelCallback() { cancellationToken.removeCancelListener(cancelCallback); if (timeout !== null) { clearTimeout(timeout); } return reject(new FCancellationException()); } cancellationToken.addCancelListener(cancelCallback); }); } //# sourceMappingURL=f_sleep.js.map