Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 1x 3x 3x 2x 3x 1x 1x | /** * Executes an async functions but will throw an error * if not complete in a certain amount of time * * @async * @function timeout * @param {function} func - The async function to execute * @param {string} [label='Timeout'] - The text for the error message * @param {number} [time=100] - The duration in milliseconds * * @example * await timeout(() => asyncFunc(1), 'My Async Function', 20) */ module.exports = async (func, label = 'Timeout', time = 100) => new Promise(async (resolve, reject) => { const timer = setTimeout(() => { return reject(new Error(`Timeout Error: ${label}`)) }, time) const result = await func() clearTimeout(timer) return resolve(result) }) |