簡體   English   中英

如何在 JavaScript 中訪問已解析的 Promise 中的數據?

[英]How to access data in resolved Promise in JavaScript?

我第一次使用承諾。 我想從 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))

傳遞給Promise.all時, requests數組不應位於另一個數組內

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

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

您的數據應該已經作為then回調中的一個數組出現:

 var promises = [ new Promise((resolve, reject) => { setTimeout(() => resolve("Hello"), 1000);}), new Promise((resolve, reject) => { setTimeout(() => resolve("world !"), 1500);}) ]; Promise .all(promises) .then(results => { let mergedResults = results[0] + " " + results[1]; console.log(mergedResults); document.body.innerHTML = mergedResults; });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM