javascript - 如何在查询函数中返回数据
问题描述
好的,我对 JS 有点陌生,我在这里的函数中有一个查询:
let queryFunction = testNames.forEach(function(name, index){
query("TIME_SERIES_INTRADAY", name)
.then(response => response.json())
.then(data => {
console.log(name);
// let start = data['Time Series (60min)']['2020-04-30 12:30:00']['1. open']
// let end = data['Time Series (60min)']['2020-04-30 12:30:00']['4. close']
// let score = (((end - start)/start)*100)
// console.log(score);
//Need last 7 fields
})
.catch(error => {
console.log(error);
});
return data;
});
如何正确返回查询中的数据,以便 queryFunction 等于查询中的数据?每当我调用该函数时,它就会出现未定义。
谢谢!
解决方案
而不是forEach
你可以使用 map 返回一个承诺数组,然后Promise.all
用来解决那些
const resultPromises = testNames.map(function(name){
return query("TIME_SERIES_INTRADAY", name)
.then(response => response.json())
}
Promise.all(resultPromises).then(results=>console.log(results))
推荐阅读
- python - tkinter 按钮的命令可以从另一个 gui 执行 root.mainloop() 吗?
- angular - 为什么在安装 Angular 项目时“npm install”命令会警告“npm WARN deprecated tslint@6.1.3:”?
- python - 自 1970 年 1 月 1 日以来经过了多少秒,包括闰秒?
- python - python:如果方法只是引发错误,它会返回什么?
- reactjs - 如何在 Stack.Navigator 上的 screenOptions 内呈现按钮?
- node.js - 如何修复 Node.js 堆内存不足错误?
- sql - 不同选择多个表之一中的行
- python - ffmpeg-python 不同分辨率的多个输出
- java - 在我的 Netbeans 8.1 中,