UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

27 lines (26 loc) 769 B
import { isError } from './index'; import { purry } from './purry'; export function timeout() { return purry(_timeout, arguments); } function _timeout(fn, maxDuration) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return Promise.race([ new Promise(function (resolve) { setTimeout(function () { resolve(new Error((fn.name + " timeout after " + maxDuration + "ms").trim())); }, maxDuration); }), fn.apply(void 0, args), ]).then(function (q) { if (isError(q)) { throw q; } return q; }); }; }