- 此问题在此处已有答案**:
(41个答案)
Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference(7个答案)
2小时前关门了。
我正在尝试编写一个从GoogleMaps API获取数据的Web应用程序。API响应在then/catch块中是正确的;
var axios = require('axios')
var config = {
method: "get",
url: httpRequest,
header: { }
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data))
})
.catch(function(error){
console.log(error)
})
其中console.log运行得非常好。我想创建一个本地对象responseData,并在***then***块之外使用该对象。
var axios = require('axios')
let localObject ;
var config = {
method: "get",
url: httpRequest,
header: { }
};
axios(config)
.then(function(response){
console.log(JSON.stringify(response.data))
localObject = response.data;
})
.catch(function(error){
console.log(error)
})
console.log(JSON.stringify(localObject)) // Local Object undefined error
如何使用www.example.com指定localObjectresponse.data?
1条答案
按热度按时间wgx48brx1#
变量“localObject”被赋值为response.data值,但是记录该变量的行在赋值之前被调用,因为JS是非阻塞的,并且“then”内部的内容稍后在前台运行,与其他内容在同一线程上运行。
在变量赋值后,您可以在“then”中控制.log(JSON.stringify(localObject)),然后在同一作用域中使用它。
或者使用异步,这样等待