2017-08-11 44 views
-2

出于某种原因,在我的阵列中的数据在函数结束迷路尽管它是对外宣称:节点阵列迷路

var resultsArray = []; 
 
res.on('end', function() { 
 
    var parsed = body.split('\n'); 
 

 
    var i; 
 
    for (i = 0; i < parsed.length; i++) { 
 
    resultsArray.push(parsed[i].split(',')); 
 
    } 
 

 
}); 
 
console.log(`\n \n---------\n${resultsArray} \n--------\n \n`);

这将打印


undefined


但如果我移动res.on函数内的console.log语句,我得到了我期望的数组。

+2

它不会丢失。回调是异步的,并且在登录到控制台时未触发。 –

+0

啊,你是对的,我没有想到这一点。谢谢! – TLET

回答

0

在你的情况,你需要使用javascript callback内varible:

res.on('end', function() { 
    var parsed = body.split('\n'); 

    var i; 
    for (i = 0; i < parsed.length; i++) { 
    resultsArray.push(parsed[i].split(',')); 
    } 

    // Use your value from here. 
    console.log(`\n \n---------\n${resultsArray} \n--------\n \n`); 
}); 

如果你想避免callback hell,写更清晰的代码,给它上async/await一试。