gpt4 book ai didi

javascript - 范围问题(NodeJS - "request"包)

转载 作者:行者123 更新时间:2023-12-03 03:54:46 25 4
gpt4 key购买 nike

我对变量的范围有疑问。我需要能够访问“请求”之外的“userLocation”。请求包可以在 https://github.com/request/request 找到下面是我的代码:

var request = require('request');  
var userLocation = "";
request('http://ipinfo.io', function(error, res, body) {
var ipDetails = JSON.parse(body);
userLocation = ipDetails.loc;
});
console.log(userLocation);

当我尝试输出“userLocation”变量时,它会打印一个空字符串,而不是请求包中的详细信息。

最佳答案

这不是范围问题。 NodeJS 的本质是异步的,这意味着 console.log(userLocation) 在执行之前不会等待您的请求完成。这就是 Promise 和回调函数存在的原因。

如果您想打印userLocation,请将其移至回调函数内,如下所示:

var request = require('request');  
var userLocation = "";
request('http://ipinfo.io', function(error, res, body) {
var ipDetails = JSON.parse(body);
var userLocation = ipDetails.loc;
console.log(userLocation);
});

看看这个 awesome tutorial如果您想了解更多信息。

关于javascript - 范围问题(NodeJS - "request"包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com