1
我試圖從不在循環中訪問array
,但它似乎有些錯誤。我錯過了什麼?我應該怎麼做?node.js函數返回空
funcA(){
return new Promise((resp, rej) => {
var list = [1,2,3,4,5];
var array = [];
list.forEach(i => {
funcB(i).then(num => {
array.push(num);
console.log(array) //=> [1,2,3,4,5]
})
});
console.log(array) //=> []
resp(array) //=> []
})
}
funcB(i){
return new Promise((resp, rej) => {
resp(i);
})
}
的可能的複製[如何我是否會返回來自異步調用的響應?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – str
'funcB' is async 。所以,你需要等待(提示:'Promise.all')所有'funcB'的承諾,然後*做* resp(array)'。 –
[如何在JavaScript中等待函數的承諾]可能的重複(https://stackoverflow.com/questions/47773824/how-to-wait-for-functions-promise-in-javascript) – Stamos