async 与 awiait
async与await分别都有语法,两种语法结合就可以使异步代码像同步代码一样, 一般都是结合使用
一. async函数:
返回值是一个promise对象
一个普通函数加了async后返回的也是promise对象,对象的状态由函数的返回结果决定,只要是非promise对象,肯定是成功的状态,如果是promise对象,就有里面的结果决定,返回的值,也是里面promise对象的值
二. await表达式
- await 必须写在async函数中
- await 右侧的表达式一般为promise对象
- await 返回的是promise 成功的值
- await 的promise 失败了, 就会抛出异常, 需要通过 try…catch 捕获处理
- await命令后面是一个 Promise 对象,返回该对象的结果。如果不是 Promise 对象,就直接返回对应的值。
async function f() {
// 等同于
// return 123;
return await 123;
}
f().then(v => console.log(v))
// 123
三. 基本用法
async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。
如果不懂,还可以看这个链接 https://www.cnblogs.com/moumoon/p/10999771.html