async
表示函数里有异步操作,await
表示紧跟在后面的表达式需要等待结果。
而async
函数的await
命令后面,可以是 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时会自动转成立即 resolved 的 Promise 对象)。
async
函数的返回值是 Promise 对象,这比 Generator 函数的返回值是 Iterator 对象方便多了。你可以用then
方法指定下一步的操作。
async函数就是generator的语法糖。
语法:
- async返回一个Promise对象
async函数内部return返回的值,会成为then方法回调函数的参数。
async function f(){
return 'hello jier';
}
f.then(v => console.log(v))
// "hello jier"
上面f内部返回的值,会被then方法回调函数接收到。
async内部函数抛出错误,会导致Promise对象变成reject状态。抛出的错误会被catch接收。
- 正常情况下,await后面是一个Promise对象。如果不是,就是一个立即resolve的Promise对象。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。