0
我是JavaScript异步概念的新手,来自C++背景。最近,我意识到我的一些功能不起作用,因为他们没有回复承诺。Bluebird推广功能
例如,此功能;
var CSVConverter=require("csvtojson").Converter;
function get_json(cvs_file_location)
{
var data=fs.readFileSync(cvs_file_location).toString();
var csvConverter=new CSVConverter();
csvConverter.fromString(data,function(err,jsonObj){
if (err){
console.log("error msg: " + err);
return null;
}
var json_csv = clone_obj(jsonObj);
console.log(json_csv);
return json_csv;
});
}
如果我尝试根据函数的返回值分配一个变量,我会得到未定义的。
var alerts_obj = get_json(testData);
get_json()
如何修改以返回承诺?我想用蓝鸟。我正在阅读承诺书,但目前对于初学者来说,这是相当沉重的。
Thanks! Upvoted。看起来很有希望。我可以promisifyAll任何node.js模块? PromisifyAll后,我必须使用这个.then和.catch结构的每个功能,使用promisifyAll模块? – user781486
我可以问我如何使用新的'get_json()'返回一个promise,并将其分配给一个变量? – user781486
您可以promisifyAll大多数/许多模块,请参阅我上面发布的第一个链接如何做到这一点。有时候你不得不与原型一起。你不必使用然后赶上,虽然你应该 – baao