promise generator aysnc/await

 promise: 比较简单,也是最常用的 主要是用来解决异步操作  是一个对象

promise对象一共有三个状态

等待
实现(resolve)
失败(reject)
从创建开始,promise对象的状态就是等待的状态,直到resolve和reject被调用

当promise被变成resolve时,会触发then()里的函数

当promise被变成reject时,会触发catch()里的函数 (也可以将err=>{...}写在then中,当做then的第二个形参传入,在reject时也会触发)

 

Generator

Generator函数是一个可以“暂停”的函数写法,可以通过对函数内部设置 “暂停”按钮 返回一个值并暂停函数执行,直到让他“开始”

Generator函数的创建方法是在函数后边添加一个*

 

在调用Generator函数时,并不会直接出发该函数,而是返回一个Generator对象,然后,通过Generator对象.next()来执行函数

“暂停”按钮: 在执行到yield的时候,会暂停该函数,并“return”出yield的内容,直到下次执行next()
“开始”按钮: 通过next()执行函数
next()返回值是一个对象,对象包含value和 done
value: 返回的值
done: Boolean值,如果为false,代表着是yield输出,还没有return(无论yield后函数中还有没有代码,都会返回false),如果为true,代表着此次输出是return或已经结束

 

async/await
async/await是一种处理promise的及其简便的方法

async函数返回的是一个promise对象,在async函数中,碰到await会等待,等待await后边的表达式的计算结果完成,这个表达式的计算结果可以是promise或者其他值(因为await可以等待表达式结果,所以可以等待react中的setState({}))

 

 

 

 从回调函数,到promise,再到generator,再到Async/await,这四种分别代表了JavaScript异步编程解决方案的进化路程。async和generator函数主要就是为了解决异步的并发调用使用的 ,直接将参数从then里取出来,相比promise的链式调用,传参更加方便,异步顺序更加清晰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值