Async/Await
1.async/await用法:
- async的用法,他作为一个关键字放到函数前面,这样普通的函数就变为了异步函数
- 异步async函数调用,跟普通函数的使用方式一样
- 异步async函数返回一个promise对象
- async函数配合await关键字使用(阻塞代码往下执行)是异步方法,但是阻塞式的
2.async/await使用场景
1.async主要来处理异步的操作
需求:执行第一步,将执行第一步的结果返回给第二步使用。在ajax中先拿到一个接口的返回数据,后使用第一部返回的数据执行第二步操作的接口调用,达到异步操作
3.async基本用法
//基本用法的async函数
let asyncFun = async function(){
return 1
}
console.log(asyncFun())
//会返回一个promise对象
4.async的function语法
1.只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数
2.异步函数内部可以使用await
3.返回值是一个Promise对象
async function name([param[, param[, ... param]]]) { statements }
name: 函数名称。
param: 要传递给函数的参数的名称
statements: 函数体语句。
返回值: 返回的Promise对象会以async function的返回值进行解析,或者以该函数抛出的异常进行回绝。
5.await语法
1.await只能在async函数内部使用,用在普通函数里就会报错
2.await 放置在Promise调用之前,await 强制后面点代码等待,直到Promise对象 resolve,得到resolve的值作为await表达式的运算结果
[return_value] = await expression;
expression: 一个 Promise 对象或者任何要等待的值。
返回值:返回 Promise 对象的处理结果。如果等待的不是 Promise 对象,则返回该值本身。
6.总结:
- async 函数返回一个Promise 对象,当函数执行的时候,一旦遇到await就会先返回,等到触发的异步操作完成,再接着执行函数体内后面的语句。
- await 关键字必须位于async函数内部
- await关键字后面需要一个promise对象(不是的话就调用resolve转换它)
- await 关键字的返回结果就是七后面Promise执行的结果,可能是resolved或者rejected的值