【发布时间】:2021-01-04 04:15:43
【问题描述】:
我正在尝试将 'fetch' 函数获得的 JSON 对象存储到全局变量中,但是它在运行时似乎存在异步问题。
function getCustomerId(name) {
var output;
fetch("url" + name)
.then(
function(response) {
if (response.status !== 200) {
console.log("Looks like there was a problem. Status Code: " + response.status);
return;
}
response.json().then(function(data) {
console.log("CustomerId:" + data.id); //I have a column in my database called 'id'
output = data.id;
});
}
)
.catch(function(err) {
console.log("Fetch Error :-S", err);
});
console.log(output);
}
现在返回的响应是:
undefined
CustomerId:A1234B123C
【问题讨论】:
-
是的。最后一个 console.log(output);需要在设置值之后。否则 console.log(output);将在您的调用返回数据之前执行。解决这个问题的最佳方法是在结果返回时调用一个函数,然后运行依赖于返回数据的代码。但我不确定你的用例。
-
@MisterJojo 是的,谢谢!我一直在寻找堆栈页面,您链接的页面提供了缺失的部分。
标签: javascript html json http fetch