如何在 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"时,出现"underdefined"。在开始打印结果 "jsonFile.language" 之前,如何使 "var jsonFile = require('./jsonFileData');" 运行 完整?
感谢您阅读我的问题。
你的异步回调不对。与我在下面所做的更改进行比较。
// 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
});
我现在遇到了麻烦,因为我不知道如何使用异步来执行此操作。 我有一个文件调用 "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"时,出现"underdefined"。在开始打印结果 "jsonFile.language" 之前,如何使 "var jsonFile = require('./jsonFileData');" 运行 完整? 感谢您阅读我的问题。
你的异步回调不对。与我在下面所做的更改进行比较。
// 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
});