簡體   English   中英

node.js函數返回空

[英]node.js function returns empty

我正在嘗試從循環中訪問array ,但似乎出了點問題。 我錯過了什么? 我該怎么辦?

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);
  })
}

你可以做這樣的事情。

 function funcA(){ var list = [1,2,3,4,5]; return Promise.all( list.map(val => { return funcB(val) }) ) } function funcB(i){ return new Promise((resp, rej) => { resp(i); }) } funcA().then(arr => console.log(arr)) 

在循環中調用異步函數時,需要等待所有調用執行完畢后才能訪問數組:

funcA(){
  return new Promise((resp, rej) => {
    var list = [1,2,3,4,5];
    var promisesArray = [];
    list.forEach(i => {
      promisesArray.push(funcB(i));
    });
    resp(Promises.all(promisesArray));
  });
}

暫無
暫無

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

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