首页 > 解决方案 > 如何在查询函数中返回数据

问题描述

好的,我对 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 等于查询中的数据?每当我调用该函数时,它就会出现未定义。

谢谢!

标签: javascript

解决方案


而不是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))


推荐阅读