Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t在请求中编辑变量_Javascript_Json_Node.js_Request - Fatal编程技术网

Javascript Can';t在请求中编辑变量

Javascript Can';t在请求中编辑变量,javascript,json,node.js,request,Javascript,Json,Node.js,Request,我试图在请求中修改变量。但我不知道为什么它没有被修改 const request = require("request"); var all = JSON.parse(body); var steamplayer = all['response']['players']['player'][0]; var sgameh = "Nessun gioco"; request({ url: "https://example.com", method : 'GET' }, functio

我试图在请求中修改变量。但我不知道为什么它没有被修改

const request = require("request");
var all = JSON.parse(body);
var steamplayer = all['response']['players']['player'][0];
var sgameh = "Nessun gioco";
request({
    url: "https://example.com",
    method : 'GET'
}, function (error, response, body){
    var sgameall = JSON.parse(body);
    var fgame = sgameall['response']['games'].filter(function(item) {
        return item.appid == steamplayer.gameid;
    });
    sgameh = parseFloat(fgame[0].playtime_forever / 60).toFixed(2);
    console.log(sgameh) // THIS WORKS, BUT IT ISN'T WHAT I WANT
})
console.log(sgameh) // SHOULD RETURN A NUMBER, BUT RETURN Nessun gioco

您的代码工作正常,并且您的
sgameh
变量会按照您的要求进行修改。
请求
函数是异步的,因此

console.log(sgameh) // SHOULD RETURN A NUMBER, BUT RETURN Nessun gioco
被执行之前

console.log(sgameh) // THIS WORKS, BUT IT ISN'T WHAT I WANT

您的代码工作正常,并且您的
sgameh
变量会按照您的要求进行修改。
请求
函数是异步的,因此

console.log(sgameh) // SHOULD RETURN A NUMBER, BUT RETURN Nessun gioco
被执行之前

console.log(sgameh) // THIS WORKS, BUT IT ISN'T WHAT I WANT

看起来
sgameh
有两个作用域。因此,这两个console.log语句都是基于变量的两个不同范围返回值。因此,即使使用request,它的工作方式也与答案中的类似?看起来
sgameh
有两个范围。因此,这两个console.log语句都是基于变量的两个不同作用域返回值。因此,即使在有请求的情况下,它也会像答案一样工作?那么,我应该如何调整它?这里有一个好的@Hamms建议,那么我应该如何调整它?这里有一个好的@Hamms建议