搜尋

首頁  >  問答  >  主體

javascript - ES6的generate問題

在學習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())
给我你的怀抱给我你的怀抱2810 天前666

全部回覆(2)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:24:08

    generate function調用後返回的是一個generate對象
    而且generate.next返回的也是一個對象,包含了value和done兩個屬性
    所以應該這麼調用

    let g = gen()
    console.log(g.next()) //{ value: ..., done: false }

    回覆
    0
  • typecho

    typecho2017-06-12 09:24:08

    雷雷

    回覆
    0
  • 取消回覆