天天看点

酒浓码浓 - es6 Promisees6 Promise干货

es6 Promise干货

小叙:

都说es6是语法糖,那么说promise是es6的经典那就一点毛病都没有!!!

本人认为promise最突出的作用就是极致的增强了代码的易读性。

then()的机制,取代了原有层层嵌套的函数的繁琐,让代码一目了然;

then就是new一个新的promise对象,所以可以无数then下去

catch()的报错机制

本人认为catch就不要乱用了好吗,如果你真的用到了OK!!!

如果你仅是在里面打印一下err,那么这冗余的代码真的让人不爽,也让程序走了冤枉路。

all()

都完成后执行then 。

all以一个数组作为一个参数 ,里面可以放置无数个函数! 以同步的机制去处理操作,得到上级 返回值 执行下个任务。

race()

完成一个就执行then(竞速)

缺点:

promise有三种状态 resolved 成功了 padding 进行中 rejected 失败了

promise一旦发送任务将只知道在这三个状态哪一步,无法终止!

扩展:

都说fetch各种好要取代了ajax。

那么window原生的fetch,只兼容高版本的谷歌等浏览器,全崩!!!!!!!

需引用promise的polyfill方法做处理:

require('es6-promise').polyfill();

import 'isomorphic-fetch';

所以fetch可以享用then,catch等等promise的方法,所以promise的缺点就是fetch的缺点,所以fetch发的请求,一旦发出就无法收回,但ajax 有个 abort方法可以终止