簡體   English   中英

如何在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”時,它顯示為“未定義”。 如何制作“ 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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM