problems(js): add “2637. Promise Time Limit”
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
d5c96c6a21
commit
dbf39a2ad0
1 changed files with 19 additions and 0 deletions
19
problems/promise-time-limit.js
Normal file
19
problems/promise-time-limit.js
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/**
|
||||||
|
* @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
|
||||||
|
*/
|
Loading…
Reference in a new issue