async 是用来修饰函数的声明, 使用async 修饰的函数会变成一个异步函数.
await 用来修饰函数的调用, 被 await 修饰的函数返回一个promise 异步对象, 使用 await 修饰后, 就会将 promise 异步对象转换成一个同步操作。
await后面要执行的同步代码其实本应该就是写在then的回调函数里的,而await必须在async代码块中执行的原因,正是要创建一个类似于then函数参数中的回调函数的执行环境,这样就可以保证异步代码不会阻塞同步代码。
所以在async代码块中,await后面只写需要等待回调结果的代码, 不相关的代码必须要写到async代码块以外的地方去。因为async代码块外的地方不会阻塞。
一、async用法
async作为一个关键字放到函数前面,用于表示函数是一个异步函数。异步函数也就意味着该函数的执行不会阻塞后面代码的执行。
异步函数语法很简单,就是在函数前面加上async 关键字,来表示它是异步的。
那怎么调用呢?async 函数也是函数,平时我们怎么使用函数就怎么使用它,直接加括号调用就可以了。
async 函数返回的是一个promise 对象,如果要获取到promise 返回值,我们应该用then 方法
二、await用法
await是等待的意思,它后面可以放任何表达式,不过我们更多的是放一个返回promise 对象的表达式。
await 关键字只能放到async 函数里面