我如何在Node js中管理异步
How can I manage asynchronous in Node js
我现在遇到了麻烦,我不知道如何使用异步来做到这一点。我有一个名为"jsonFileData.js"的文件,在这里:
// jsonFileData.js
var fs = require('fs'),
Converter = require('csvtojson').Converter,
csvConverter = new Converter();
function jsonFile(filename) {
csvConverter.on("end_parsed",function(jsonObj)
return jsonObj;
});
fs.createReadStream('../csv_parse/' + filename + '.csv').pipe(csvConverter);
}
module.exports = {
language: jsonFile('language'),
};
另一个文件名为"main.js"
// main.js
var jsonFile = require('./jsonFileData');
console.log(jsonFile.language);
当我运行"main.js"时,它出现" undefined "。我怎样才能使"var jsonFile = require('./jsonFileData');"在开始打印结果"jsonFile.language"之前完全运行?谢谢你阅读我的问题
你的异步回调是不对的。
// jsonFileData.js
var fs = require('fs'),
Converter = require('csvtojson').Converter,
csvConverter = new Converter();
function jsonFile(filename,callback) {
csvConverter.on("end_parsed",function(jsonObj) {
return callback(null, jsonObj);
});
fs.createReadStream('../csv_parse/' + filename + '.csv').pipe(csvConverter);
}
module.exports = {
language: jsonFile
};
在你的main.js
文件中:
// main.js
var jsonFile = require('./jsonFileData');
jsonFile.language('language', function(err, jsonObj){
if(err){
console.log(err);
return;
}
console.log(jsonObj);
console.log("Hello World!"); // Edit based on comment
});
相关文章:
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何访问声音管理器2创建的声音对象
- esri javascript异步打印
- JS编译器/包管理器,用于版本控制
- Firebase2(Firebase.google.com)推送通知-从外部管理
- JavaScript异步问题
- 以角度管理动态URL
- React Redux错误页面管理
- $translateProvider.useStaticFilesLoader的Angular Translate异步定
- 异步facebook功能
- 管理Meteor中的异步回调
- 使用jQuery'管理同步和异步JavaScript函数;s延期
- 管理异步性并在节点中执行多个 MySQL 查询
- 使用多个异步调用管理队列
- 如何在Redux中管理(异步)级联数据
- 我如何在Node js中管理异步
- 是否有一个模式来管理javascript同步和异步调用
- 管理大量骨干异步请求
- 用于管理多个异步JavaScript操作的设计模式
- 我如何管理Node.js异步变量范围