@buttercup/channel-queue
Version:
A queue management library with channels
25 lines (24 loc) • 721 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.timeLimit = void 0;
const layerr_1 = require("layerr");
const types_1 = require("./types");
function timeLimit(promise, time) {
let timeout;
return Promise.race([
promise,
new Promise((_, reject) => {
timeout = setTimeout(() => {
reject(new layerr_1.Layerr({
info: {
code: types_1.ErrorCode.TaskTimeout
}
}, `Timed-out waiting for task: ${time} ms`));
}, time);
})
]).then(result => {
clearTimeout(timeout);
return result;
});
}
exports.timeLimit = timeLimit;