【问题标题】:async function return pending/fullfiled异步函数返回待处理/已完成
【发布时间】:2020-06-22 17:45:49
【问题描述】:

我正在尝试为每个服务器发出 XMLRPC 请求,然后将所有数据合并到总变量中。问题是我得到“待处理”作为回报,而 setTimeout 是“已满”我的意思是我知道第一个仍在处理中,另一个是它成功但如何获得实际的数组?我做错了什么,它没有返回值?

const servers = ["server1", "server2];
      try {
        const total = servers.map(async server => {
          const res = await sendXMLRPCRequest(null, server, Commands.get_all_devices_id)
          res.map(unit => {
            return {
              "id": unit,
              "server": server,
              "modules": []
            }
          })
        })
        setTimeout(() => console.log(total), 5000)
        console.log(total)


      }
      catch (err) {
        console.log(err)
      }

【问题讨论】:

标签: javascript reactjs async-await


【解决方案1】:

试试这个

const total = Promise.all ( servers.map (async server => {
    const res = await sendXMLRP.....;
    return res.map (unit => { // whatever you return 
    })
}))

查看Promise.All documentation

【讨论】:

  • 嗯,是的,我没想过要使用 Promise.all...,谢谢大家
猜你喜欢
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
相关资源
最近更新 更多