前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript第二十弹——ES6(9)Generator的语法糖Async

JavaScript第二十弹——ES6(9)Generator的语法糖Async

作者头像
萌兔IT
发布2019-07-26 12:49:08
4070
发布2019-07-26 12:49:08
举报
文章被收录于专栏:萌兔it萌兔it

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虽然是个好用的语法糖,但是使用的时候也有自己的注意事项。

  1. 为了保证程序的正常运行,而不是在意外之外被reject终止,那么就尽量用到try catch吧。
  2. 如果两个操作直接不存在前后关系,那么就一起触发吧,反正是异步呀,不要等着一个完事再跑另一个啦。

好啦,今天的分享就到这里啦,喜欢兔妞的文章就请关注+在看吧,还希望与小编多多交流,让我们做到更好!!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌兔it 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档