有没有人试图让 Underscore JS 或 lodash(或任何 ES5 标准函数)与生成器一起工作?
如果我们有一个数组var myArray = [1,2,3,4,6];
,我们想对它进行 forEach。
在非发电机情况下,您只需
myArray.forEach(function(k) {
console.log(k);
});
然而,当你不能在非生成器函数中产生时,所以如果在这个循环中我们必须做一些异步工作,你需要做以下事情。
var foreach = function* (arr, fn) {
var i;
for (i = 0; i < arr.length; i++) {
yield * fn(arr[i], i);
}
};
yield* foreach(myArray, function* (k) {
var a = yield fs.readFile();
});
哪种烂。
有人知道让匿名函数与生成器一起工作的方法吗?因此,我们有点失去了整个 lodash 库。
注意:我正在使用 Traceur 将我的代码编译成 ES6 并打开生成器。
注意:我没有使用 co()。我正在使用如下所示的自定义生成器函数
var run = function(generatorFunction) {
var generatorItr = generatorFunction(resume);
function resume(callbackValue) {
generatorItr.next(callbackValue);
}
generatorItr.next();
};