【发布时间】:2017-09-11 09:16:01
【问题描述】:
我正在尝试异步/等待功能。我有这样的代码模仿请求:
const getJSON = async () => {
const request = () => new Promise((resolve, reject) => (
setTimeout(() => resolve({ foo: 'bar'}), 2000)
));
const json = await request();
return json;
}
当我以这种方式使用代码时
console.log(getJSON()); // returns Promise
它返回一个承诺
但是当我调用这行代码时
getJSON().then(json => console.log(json)); // prints { foo: 'bar' }
它按预期打印 json
是否可以只使用console.log(getJSON()) 之类的代码?我不明白什么?
【问题讨论】:
-
async/await always returns promise- 这是正确的,所有标记为async的函数都会总是返回一个 Promise - 这就是 async/await 的全部意义
标签: javascript asynchronous promise async-await ecmascript-2017