最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

node.js函数返回空

IT培训 admin 7浏览 0评论

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

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论