【发布时间】:2020-12-06 21:17:57
【问题描述】:
我正在尝试将来自 Novelcovid api 调用“api.countries({country:"USA"}).then(console.log)”的数据存储到 index_data 对象中。我正在使用函数 getData 将值存储到 index_data 对象中。我遇到的问题是 index_data 对象不会在 getData() 函数的范围之外更新,我希望能够全局访问分配给对象的新属性。任何关于我如何解决这个问题的想法都将不胜感激。
let totalConfirmed;
let index_data = {
totalConfirmedCases: null,
totalConfirmedDeaths: null,
totalRecovered: null,
casesToday: null
};
api.countries({country:"USA"}).then(totalData);
function totalData(result) {
totalConfirmed = result.cases;
getData(index_data, totalConfirmed);
};
function getData(theObject, tcVar){
theObject.totalConfirmedCases = tcVar;
};
console.log(index_data);
【问题讨论】:
-
"[...] index_data 对象不会在 getData() 函数的范围之外更新"–是的,但只有在您记录它之后价值。 “[...] 全局访问分配给对象的新属性”——您需要存储生成的 Promise 并使用
promise.then(index_data => /**/)或使用async/await。
标签: javascript node.js function scope