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