我正在尝试使用 async/await 和 try/catch 来理解异步调用。
在下面的示例中,如何将我的成功响应保存到一个可以在其余代码中使用的变量?
const axios = require('axios');
const users = 'http://localhost:3000/users';
const asyncExample = async () =>{
try {
const data = await axios(users);
console.log(data); //200
}
catch (err) {
console.log(err);
}
};
//Save response on a variable
const globalData = asyncExample();
console.log(globalData) //Promise { <pending> }
最佳答案
1) 从您的asyncExample
函数返回一些内容
const asyncExample = async () => {
const result = await axios(users)
return result
}
2) 调用该函数并处理其返回的 Promise
:
;(async () => {
const users = await asyncExample()
console.log(users)
})()
这就是为什么你应该这样处理它:
- 你不能做顶级的
await
(尽管有a proposal);await
必须存在于async
函数中。
但是我必须指出,您的原始示例不需要 async/await
根本;因为 axios
已经返回一个 Promise
,你可以简单地做:
const asyncExample = () => {
return axios(users)
}
const users = await asyncExample()
关于javascript - 在变量上保存异步/等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48327559/