为什么获取的数据不存储在全局变量中,以便我可以在异步函数之外使用它?
Why fetched data is not stored in global variable so that I can use it outside of async function?
所以,我想在我的应用程序中使用从 API 获取的数据,但我无法将获取的数据存储在异步函数 getapi() 之外,但是如果我在其中使用所有其他函数getapi() 函数,它们工作正常,但我想将获取的数据存储在该函数之外,以使我的代码更具可读性和清晰性。
var mdata;
const api_url = "https://api.jsonbin.io/b/602998b0f460fe73a1967fe0";
async function getapi(url) {
const response = await fetch(url);
data = await response.json();
mdata = data;
}
getapi(api_url);
console.log(mdata);
在您执行代码的方式中,您并不是在等待异步函数完成。
您的代码应如下所示。
在此处了解有关承诺的更多信息link
var mdata;
const api_url = "https://api.jsonbin.io/b/602998b0f460fe73a1967fe0";
async function getapi(url) {
const response = await fetch(url);
data = await response.json();
mdata = data;
}
getapi(api_url).then( function(){
console.log(mdata);
}
);
所以,我想在我的应用程序中使用从 API 获取的数据,但我无法将获取的数据存储在异步函数 getapi() 之外,但是如果我在其中使用所有其他函数getapi() 函数,它们工作正常,但我想将获取的数据存储在该函数之外,以使我的代码更具可读性和清晰性。
var mdata;
const api_url = "https://api.jsonbin.io/b/602998b0f460fe73a1967fe0";
async function getapi(url) {
const response = await fetch(url);
data = await response.json();
mdata = data;
}
getapi(api_url);
console.log(mdata);
在您执行代码的方式中,您并不是在等待异步函数完成。
您的代码应如下所示。
在此处了解有关承诺的更多信息link
var mdata;
const api_url = "https://api.jsonbin.io/b/602998b0f460fe73a1967fe0";
async function getapi(url) {
const response = await fetch(url);
data = await response.json();
mdata = data;
}
getapi(api_url).then( function(){
console.log(mdata);
}
);