- asayc的用法,它作为一个关键字放到函数前面,这样普通函数就变为了异步函数
- 异步async函数调用,跟普通函数的使用方式一样
- 异步async函数返回一个promise对象
- async函数配合await关键字使用(阻塞代码往下执行)
是异步方法,但是阻塞式的
使用场景
async主要来处理异步的操作,
需求:执行第一步,将执行第一步的结果返回给第二步使用。在ajax中先拿到一个接口的返回数据,后使用第一部返回的数据执行第二步操作的接口调用,达到异步操作。
…
模拟出一个摇色子的异步操作,先通过一个方法三秒之后拿到一个筛子数,第二步进行输出
[code]//基本用法的async函数let asyncFun = async function(){return 1}console.log(asyncFun())//会返回一个promise对象//使用场景//摇色子方法function dice(){return new Promise((resolve,reject)=>{let sino = parseInt(Math.random()*6+1) //生成一个1~6之间的随机小数setTimeout(()=>{resolve(sino)},2000)})}//异步方法async function text(){let n= await dice()//await 关键字后面调用摇色子方法执行完毕之后,才进行变量赋值console.log(\"摇出来\"+n) //最后打印出摇出来的数}text()
总结:
async 函数返回一个Promise 对象,当函数执行的时候,一旦遇到await就会先返回,等到触发的异步操作完成,再接着执行函数体内后面的语句。
await 关键字必须位于async函数内部!
await关键字后面需要一个promise对象(不是的话就调用resolve转换它)!
await 关键字的返回结果就是七后面Promise执行的结果,可能是resolved或者rejected的值!