首页 > 解决方案 > 如何在 JavaScript 中访问已解析的 Promise 中的数据?

问题描述

我第一次使用承诺。我想从 2 个不同的端点获取数据(数组)。以下是我到目前为止提出的代码。我的控制台输出显示[Promise, Promise]两者都处于已解决状态。我也可以看到data我需要的响应,但我不知道如何访问它们。如何从 Promise 中获取数据数组?谢谢

控制台中的承诺输出

0: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: "Object"
  data: {room 18: {...}, room 19: {...}, room20: {...}} // this is what I need 

1: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: "Object"
  data: {room 18: {...},  room 19: {...}, room20: {...}} // this is what I need
const urls = ['/room/*/userconfig', '/room/*/observation/latest']; 
        let requests = urls.map(url => axios.get(url)); 

        Promise.all([requests])
            .then(res => res.map(response =>  console.log(response) // create 1 array and match roomId data))

标签: javascriptarrayspromise

解决方案


传递给时,该requests数组不应位于另一个数组中Promise.all

let requests = urls.map(url => axios.get(url)); 

Promise.all(requests)
  .then(res => res.map(response =>  console.log(response));

推荐阅读