【发布时间】:2021-01-23 23:20:27
【问题描述】:
我正在尝试从这个函数中获取“msg”来对其进行数学运算,但它不断返回未定义。但是,在函数内我可以读取数据但不能对其进行数学运算。
let getArr = []
const https = require('https')
const options = {
hostname: 'financialmodelingprep.com',
port: 443,
path: '/api/v3/quote/TSLA?apikey=?apikey=demo',
method: 'GET'
}
const req = https.request(options, (res) => {
res.on('data', (data) => {
data = JSON.parse(data)
data.map(( msg ) => {
//console.log(msg)
getArr.push(msg)
})
})
})
console.log(getArr.slice(-1)[0])
【问题讨论】:
-
从您的代码看来,您似乎是在 API 返回数据之前访问变量 getArr 您也可以在将数据推送到 getArr 变量后进行数学运算,即在 data.map 之后
-
我有一个不同的函数,我希望这些数据可以转到。据我了解,这是一个异步函数。如何让它耐心等待然后更新全局变量?
-
你可以使用 await 操作符看这个例子stackoverflow.com/questions/8775262/…
-
你不知道你的回调
(res) => {什么时候执行,所以设置一个全局变量没有帮助,因为你不知道什么时候访问那个全局变量,因为你不知道当它获得分配的数据时。如果要将数据传递给另一个函数,请在(res) => {回调中调用该函数:anotherFunc(data)。另外,即使你不需要它,你也不应该在这里使用.map(),当你不想返回任何东西时使用.forEach() -
@NickParsons 谢谢
标签: javascript arrays api get request