我正在尝试使用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部分已经坏了。我做错了什么?
答案 0 :(得分:2)
愚蠢的我,JSON.parse is sync。所以不需要包装。
var fileContents = yield read('public/data/works.json', 'utf-8');
log(JSON.parse(fileContents))