阮一峰 ES6 教程里的例子,我知道自动执行器里的 next 函数会作为回调函数传入 Thunk 函数返回的函数里,一直递归调用,可是 err, data 这种参数形式只能适用于操作 fs.readFile,如果我要操作其他函数就失效了,总不能为每个操作都写个自动执行器吧,co 模块又是怎么解决这个问题的呢。
function run(fn) {
var gen = fn();
function next(err, data) {
var result = gen.next(data);
if (result.done) return;
result.value(next);
}
next();
}
function* g() {
// ...
}
run(g);
fs.readFile(fileName, (err,data) => {});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…