此问题已在此处有答案:
Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference(7个回答)
6小时前关闭
var someVariable;
axios
.get(
`example.com`
)
.then((result) => {
someVariable = 1;
console.log(someVariable);
// Prints 1
});
console.log(someVariable);
// Prints undefined
为什么我修改了变量,它仍然显示undefined
1条答案
按热度按时间nukf8bse1#
因为这就是JavaScript中变量作用域和promise的工作方式。'someVariable'只存在于回调和函数中,并且应该这样做,因为它是一个异步操作,所以没有理由像在代码段中那样在回调之外使用它。
当你在函数外声明它时,它仍然是未定义的。
我建议你阅读有关promise如何工作以及如何使用async/await处理它们的文档。