异步函数返回挂起/已满

我正在尝试为每个服务器发出 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)

      }


LEATH
浏览 96回答 1
1回答

慕斯709654

尝试这个const total = Promise.all ( servers.map (async server => {    const res = await sendXMLRP.....;    return res.map (unit => { // whatever you return     })}))查看Promise.All 文档
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript