【发布时间】:2018-06-27 21:29:19
【问题描述】:
我正在尝试使用 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> }
【问题讨论】:
-
globalData不应该是undefined,而应该是Promise(这是异步函数唯一可以返回的内容)。 -
请注意,
async/await不是“ecmascript-6”(正确的:ECMAScript 2015)。两年后,它们被添加到 ES2017 中。 -
但是请注意,即使您等待 promise 解析,它的解析值也会是
undefined。要使其成为其他内容,您需要在asyncExample函数中使用return。 -
@T.J.Crowder 我编辑了这个问题,很抱歉留下旧评论说“未定义”。您将如何将响应保存到可在同一文件范围内的其他地方使用的变量中?
标签: javascript ecmascript-6 es6-promise