[英]How do you narrow down a promise function that is inside and array?
對於我正在處理的項目,我需要使用 7 個 promise 函數從 API 獲取數據。 我有承諾函數返回一個數據數組,如下所示。
var json1 = new Promise((resolve, reject) => {
fetch(url[0])
.then(r => {
resolve(r.json())
})
.catch(err => {
reject(err)
})
})
var json2 = new Promise((resolve, reject) => {
fetch(url[1])
.then(r => {
resolve(r.json())
})
.catch(err => {
reject(err)
})
})
//code is repeated with different links until json7
return [json1,json2,json3,json4,json5,json6,json7];
我可以使用...
const data = await fetchURL(urlToQuery())
var dataBP = data[0];
但是,我無法縮小此 Promise 數據中的 JSON 范圍。 我以前使用dataBP[0].Wind_Speed
來獲取數據,但它返回undefined
。
這是我正在使用的 JSON 示例。
{
"Wind_Speed": "9.0",
"Air_Temp": "3.7",
"Solar_Energy": "0.0",
"Low_Air_Temp": "3.7",
"Dew_Point": "2.0",
"Solar_Rad": "0.0",
"Rain_Rate": "0.0",
"Rel_Humidity": "89.0",
"Atm_Pres": "28.348",
"Station_ID": "Buckingham Point",
"DateTime_UTC": "2019-12-26 16:15:00",
"Hi_Wind_Speed": "12.0",
"Wind_Dir": "NW",
"Rain": "0.0",
"Hi_Wind_Speed_Dir": "WSW",
"Hi_Air_Temp": "3.9"
}
任何幫助表示贊賞。
你需要的是Promise.all
像:
Promise.all(arrayOfPromises).then((values) => {
//Here you can access the values/properties
values[0].Wind_Speed
})
考慮到在這種情況下,如果陣列中的任何承諾被拒絕.all
不會碰到.then
公牛將達到.catch
。
有關全面的解釋,請訪問: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.