Node.js Https节点模块未在函数外部保存变量
所以我一直在尝试从API中获取一些json信息,但是当我尝试获取json对象并将其分配给变量时,它就是不起作用Node.js Https节点模块未在函数外部保存变量,node.js,https,Node.js,Https,所以我一直在尝试从API中获取一些json信息,但是当我尝试获取json对象并将其分配给变量时,它就是不起作用 var info = []; https.get('https://br1.api.riotgames.com/lol/summoner/v4/summoners/by-name/sumname?api_key=', (res) => { info.push(res.toString()); res.on('data', (d) => { info.pu
var info = [];
https.get('https://br1.api.riotgames.com/lol/summoner/v4/summoners/by-name/sumname?api_key=',
(res) => {
info.push(res.toString());
res.on('data', (d) => {
info.push(d.toString());
});
res.on('end', () =>{
console.log(info);
});
});
console.log(info);
<code>
最近,当我开始进行GETAPI调用时,实际上我也遇到了类似的问题。我怀疑问题在于-- https.get将返回一个承诺。您需要先解决承诺,然后才能在中获取数据。请参阅31piy的以下帖子
这可能会有帮助 侦听响应对象上的数据事件,推送数组中的每个块,等待结束事件,并使用
info.concat().toString()
其异步性从数组块构建一个完整的响应,因此您必须等待响应完成https.get
返回请求流,您必须对其调用.end()
,以完成/结束请求并开始接收响应。https.get
不返回承诺。它返回一个请求对象(流)