【发布时间】:2019-04-26 16:23:01
【问题描述】:
我知道co 有点过时,但我仍然对它的工作原理感兴趣。不过,我很难理解 thunkToPromise 函数的用途:
function thunkToPromise(fn) {
var ctx = this;
return new Promise(function (res, rej) {
fn.call(ctx, function (err, res) {
if (err) return rej(err);
if (arguments.length > 2) res = slice.call(arguments, 1);
res(res);
});
});
}
thunk 是一个没有参数的函数,但 fn 仍然使用一个参数调用。此外还有这个奇怪的递归调用res(res),通常会导致堆栈溢出。这里发生了什么?我将如何申请 thunkToPromise 以便它做一些有意义的事情?
【问题讨论】:
标签: javascript promise coroutine thunk