Promise
promise的三种状态:pending(进行中)、fulfilled(已完成)、rejected(已失败)。
那天,我看到了网上一个例子,脑瓜子想破了,也没想明白。来吧!贴出来,欣赏下:
Promise.resolve().then(() => { console.log(0); return Promise.resolve(4); }).then((res) => { console.log(res) }) Promise.resolve().then(() => { console.log(1); }).then(() => { console.log(2); }).then(() => { console.log(3); }).then(() => { console.log(5); }).then(() =>{ console.log(6); })
这不就是 0,1,2,3,4,5,6嘛~
那我们试试,到浏览器输出看一下
结果为:【0、1、2、3、4、5、6】 (キ`゚Д゚´)!!
可是,4 怎么跑到 3 后边去的呀!
下面,我们浅浅道来。(有没有装B装到,哈哈)
- Promise是一个类,在执行这个类的时候会传入一个执行器,这个执行器会立即执行
- Promise会有三种状态:pending(等待),fullfilled(完成),rejected(失败)
- 状态只能由pending-->fullfilled , pending---->rejected,一旦发生改变便不可修改。
- promise中使用resolve,reject两个函数来更改状态。
- then方法内部做但事情就是状态判断: 成功调用成功回调函数,失败调用失败回调函数