node.js函数返回空

我试图从不在循环中访问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);

})

}

回答:

你可以做这样的事情。

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

});

}

以上是 node.js函数返回空 的全部内容, 来源链接: utcz.com/qa/261856.html

回到顶部