JavaScript/node.js从函数内部的函数回调数据



我不确定如何从功能中的函数中获取数据回调/返回。

我想从ProcessData函数中传递处理的数据作为回调,然后返回此BufferData作为输入其他函数。目前,BufferData无法从ProcessData函数中返回,因为它从Traverse函数调用。代码如下:

function processData(obj, key, value){
    var newobj=obj[key][0];
    obj[key].push(newobj);
    fs.readFile(__dirname + '/' + inFile, 'utf8', function(err, res) {
        if (err) return console.log(err);
          var data = JSON.parse(res);
          data.key=obj;
          bufferData=JSON.stringify(data);
          **callback(bufferData);** (not sure how to code it to return this bufferData)
}); }
function traverse(obj, func) {
  for (var key in obj) {
    func(obj, key, obj[key]);
    if (obj[key] !== null && typeof(obj[key])=="object") {
        traverse(obj[key], func);
    }       
} }
traverse(data, processData);

从回调返回任何数据确实没有意义。

您可以将回调函数添加到processData,然后在readFile的回调中调用。

否则,您可以使用fs.readFileSync,因此您可以同步获取文件数据。

最新更新