node.js函数返回空
我试图从循环中访问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))
node.js函数返回空
我试图从循环中访问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))