您可以在 github 仓库中找到这篇文章中的所有代码。
/** * @param {function} callbackfn * @param {delay} number * @return {object} */ function invokelater(callbackfn, delay) { const timerid = settimeout(() => { callbackfn(null, 'run'); }, delay); return { clear: () => cleartimeout(timerid), } } // usage example const cancel = invokelater((err, data) => { console.log(data); cancel.clear(); }, 2000);
/** * @param {function} fn * @return {function} */ function flattenThunk(fn) { return function (callbackFn) { function resolveThunk(err, result) { if (err) { callbackFn(err, undefined); return; } if (typeof result === 'function') { result(resolveThunk); } else { callbackFn(undefined, result); } } fn(resolveThunk); } } // Usage example function fn1(callbackFn) { setTimeout(() => { callbackFn(null, 'ok'); }, 10); } function fn2(callbackFn) { setTimeout(() => { callbackFn(null, fn1); }, 10); } function fn3(callbackFn) { setTimeout(() => { callbackFn(null, fn2); }, 10); } flattenThunk(fn3)((err, data) => { console.log(data); // 'ok' });
以上就是回调 - JavaScript 挑战的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号