19 lines
494 B
JavaScript
19 lines
494 B
JavaScript
/**
|
|
* @param {Function} fn
|
|
* @param {number} t
|
|
* @return {Function}
|
|
*/
|
|
var timeLimit = function(fn, t) {
|
|
return async function(...args) {
|
|
return new Promise((resolve, reject) => {
|
|
setTimeout(() => reject("Time Limit Exceeded"), t);
|
|
|
|
fn(...args).then(resolve).catch(reject);
|
|
});
|
|
}
|
|
};
|
|
|
|
/**
|
|
* const limited = timeLimit((t) => new Promise(res => setTimeout(res, t)), 100);
|
|
* limited(150).catch(console.log) // "Time Limit Exceeded" at t=100ms
|
|
*/
|