我对Promises相当陌生,并在这里找到了许多示例,这些示例说明如何始终使用console.log
来访问实际值。但是我的目标是将结果存储在变量中并使用它。
getdata = () =>
fetch(
"https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&outputsize=full&apikey=demo"
)
.then(response => {
if (response.status === 200) {
return response.json();
} else {
throw new Error("This is an error");
}
})
.then(data => {
console.log(data);
});
getdata();
此代码有效。您能帮我重写一下吗?
getdata()
函数允许我将结果存储在变量中。退货不起作用,因为我将收到另一个未决的承诺。 最佳答案
您可以这样做:
getdata = () =>
fetch(
"https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&outputsize=full&apikey=demo"
).then(response => {
if (response.status === 200) {
return response.json();
} else {
throw new Error("This is an error");
}
});
getdata().then(data => {
//I can do whatever with data
});
当然,您还希望处理请求失败的情况,因此也可以链接
.catch()
。或者,如果为其配置了构建过程,则可以使用async
和await
来执行以下操作:try {
const data = await getdata();
} catch(err) {
}
这需要在标记为
async
的函数中关于javascript - 从API调用后从Promise返回数据并将其存储在变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58571813/