生成器 - thunkifying JSON.parse返回奇数结果

时间:2014-04-20 18:57:02

标签: json node.js generator ecmascript-harmony co

我正在尝试使用co和generator读取JSON文件。 test.json包含:

{
  "hello": "world"
}

这会传递jsonlint,因此它应该有效。这是我目前的代码:

#!/usr/bin/env node --harmony
var co = require('co'),
  fs = require('fs'),
  thunkify = require('thunkify');

var read = thunkify(fs.readFile);
var JSONParse = thunkify(JSON.parse);

var log = console.log.bind(console);

co(function *(){
  var fileContents = yield read('test.json', 'utf-8');
  var works = yield JSONParse(fileContents)
  log(works)
})()

仅记录空对象。但是fileContents已满,所以看起来JSON.parse部分已经坏了。我做错了什么?

1 个答案:

答案 0 :(得分:2)

愚蠢的我,JSON.parse is sync。所以不需要包装。

var fileContents = yield read('public/data/works.json', 'utf-8');
log(JSON.parse(fileContents))