0
我不知道如何從函數內部的函數獲取數據回調/返回值。javascript/node.js函數內函數的回調數據
我想將processData函數中的已處理數據作爲回調函數傳遞,並返回此bufferData作爲輸入的其他函數。此時,bufferData函數不能從processData函數返回,因爲它是從遍歷函數調用的。代碼如下:
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);
它不太清楚你想用它做什麼。我最初的問題是什麼'回調(..)',因爲他不是你的代碼片段的一部分。你能解釋一下你想達到的目標嗎?你也應該知道的是'rs.readFile'異步讀取文件的全部內容,因此你的'遍歷'將繼續執行,*不*等待'readFile'完成。 – Nico
Hi @Nico,我爲這個問題添加了更多信息,我想遍歷一個json文件並處理這個文件中的數據,然後將新的處理過的json傳遞給另一個函數。 –