码迷,mamicode.com
首页 > 其他好文 > 详细

async函数

时间:2017-10-30 15:02:12      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:命令   改变   多个   状态改变   存在   reject   类型   对象   try   

async点:当函数执行时,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体后面的语句。

async函数与generator 函数相比,不同点:

1.内置执行器。async函数自带执行器;与普通函数一模一样,只需一行即可调用。而genenrator 函数,需要调用next方法或 co模块,才能真正执行。

2.更语义化。async和await, async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果。

3.await 后面 可以是 Promise对象、任意类型的值(数值、字符串。。)。yield 后面只可能是Thunk函数和Promise函数。

4.async函数 返回值是Promise对象,可以用then。而generator返回iterator对象。

async函数返回的Promise对象,必须等到await后面的Promise对象执行完,才会发生状态改变,只有async函数内部的异步操作执行完,才会执行then方法指定的函数

1.只要一个await语句后的Promise变成reject,那整个async函数都会终断执行。所以有多个await命令,可以统一放在try..catch结构中。

2.多个await命令后面的异步操作,如果不存在继发关系,最好让其同时触发。

 

注:Promise的不足点1. 在promise链中,then()只能将上一步b的结果传给下一步c,而不能讲上上一步a的值传到c。

async函数

标签:命令   改变   多个   状态改变   存在   reject   类型   对象   try   

原文地址:http://www.cnblogs.com/yxiaoqian/p/7753709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!