突变数组值无法足够快地更新到全局范围,该怎么办?

问题描述

我认为我的问题是由于异步执行。就是这种情况:

我在全局范围内有两个空数组:

let stocks2 = [];
let c = [];

然后我通过回调函数发出一个api请求(股价),该回调函数获取的股价推到空的stocks2数组中

stocks2.push(content['Monthly Adjusted Time Series'][key]['1. open']);

此后,我将获取的股票价格的字符串值转换为数字并将其推入另一个全局空数组

c.push(stocks2.map(i=>Number(i)));

获取和推送值在回调函数中进行。我可以在回调函数之外console.log(c);并在控制台中获得所需的数字股票价格。但是控制台有这个奇怪的“值刚刚被评估”的注释。我正在尝试在回调函数之外计算不同股价的协方差,但得到的结果为NaN。

控制台如何能够获得数字值而协方差函数却不能呢?如果我尝试在获取并推入值的回调函数中计算协方差,那么它将起作用。任何想法如何解决此问题?我可以尝试延迟协方差函数的执行,还是在其他地方出现问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)