ES6新特性 之 promise

promise是ES6中新添加的可用于异步获取数据的方法

promise中存在三种状态,即:pendding、resolve、reject,promise状态一旦从pendding转为resolve或者reject后续不可变更

promise中的promise.all和promise.race的使用及其区别

promise.all

使用:将多个promise实例包装成一个新的promise实例;

特点:成功与失败返回的数据结构是不同的,成功返回的是一个数组,数组元素对应promise传入的请求,不用担心不同的请求响应速度导致的顺序问题;失败则是返回最先被reject失败的请求失败信息

应用场景:页面中某一个模块的渲染依赖于两个或以上的接口请求响应数据的综合判断来渲染时,在全部请求未返回时以loading的形式展示,当全部接口成功返回后判断渲染指定数据生成UI界面

promise.race

race顾名思义,赛跑,取得返回响应数据最快的请求值,不论结果本身是reject失败还是resolve成功

使用场景:多台服务器部署了同样的服务端代码,假如我要获取一个商品列表接口,我可以在 race 中写上所有服务器中的查询商品列表的接口地址,哪个服务器响应快,就从哪个服务器拿数据

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享