Hello,小伙伴们~生活那么苦,今天就给大家带来点甜的,还记得昨天大明湖畔的Generator嘛,那个*那个yield是不是很烦呢,那我们今天就送大家一颗语法糖,那就是Async!
ASYNC
>>>>
Async
我们先来试着写一个Async:
发现和Generator的不同了吗,相比之下,Async更像一个正常的函数。它的特点就是在function前面要有一个async关键字,并且返回一个Promise对象。
她的用法就是:
async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。
>>>>
Promise
这里先要说一下的是Promise的状态变化,这直接决定了后面的操作。
async的机制就是要先执行自己函数里await后面的Promise对象,执行完后函数返回的Promise对象状态才会发生改变,当然遇到return那就得return了,大佬整不了整不了;或者说抛出错误了,那也别指望执行后面的了。如果顺利执行完毕,那么我们就可以用then接着指定回调函数啦~
前面说Promise的时候我们说到了Promise的状态有一个reject,个时候操作就失败了,在Async里面也同样有这样的容错机制,那就是catch(),用来接住异常。也可以通过try...catch结构。这就保证了即使失败,程序也不会终止,而是继续执行下去。
>>>>
await
await命令也是Async的亮点之一,它后面跟随的如果是Promise对象,就返回结果,不是就直接返回值。但是要注意的是,await不能滥用哦,只能用于Async之中,它爱的只有async,不然会报错呢!
>>>>
Warning
Async虽然是个好用的语法糖,但是使用的时候也有自己的注意事项。
好啦,今天的分享就到这里啦,喜欢兔妞的文章就请关注+在看吧,还希望与小编多多交流,让我们做到更好!!!