在学习ES6的generate,下面例子为什么不能打印,还会报错?如何修改?我是应该执行gen()还是gen.next()var fs = require('fs');var readFile = function (fileName) { return new Promise(function (resolve, reject) { fs.readFile(fileName, function(error, data) { if (error) reject(error); resolve(data); }); });};var gen = function* () { var f1 = yield readFile('../test/1.json'); var f2 = yield readFile('../test/2.json'); console.log(JSON.stringify(f1)); console.log(JSON.stringify(f1));};//gen()console.log(gen.next())
1 回答

慕仙森
TA贡献1827条经验 获得超8个赞
generate function调用后返回的是一个generate对象
而且generate.next返回的也是一个对象,包含了value和done两个属性
所以应该这么调用
let g = gen()
console.log(g.next()) //{ value: ..., done: false }
添加回答
举报
0/150
提交
取消