首页 > 解决方案 > 在 npm 请求函数之外获取值

问题描述

我正在尝试创建一个在传递 URL 时解析 json 的函数。它会解析它,如果我尝试在请求中记录它,它会起作用,但我无法返回这个值。

function JaySon(){
    request({url: url,json: true}, function (error, response, body) {
        return body;
    })
}

var url ="http://api.geonames.org/findNearbyPlaceNameJSON?lat=51.9877644&lng=-1.47866&username=demo";
var x = JaySon(url);

console.log("json:"+x);

控制台只记录“json:undefined”,据我了解,这是因为 console.log 的运行速度比解析完成的速度快。我该如何解决这个问题?

标签: javascriptjsonfunctionnpmrequest

解决方案


另一个可能的原因也可能是由于您的函数不接受任何参数,因此在调用函数时没有对您传递的 URL 发出请求。

您的代码应该类似于

function JaySon(url){
request({url: url,json: true}, function (error, response, body) {
    return body;
})

}


推荐阅读