成都网站建设设计

将想法与焦点和您一起共享

ES2020新特性(种草)-创新互联

这几年,Ecma TC39一年一次更新 ecmascript 规范标准,截止目前,以下特性已进入 finished 状态。现在带大家体验种草 ES2020 新特性。

成都创新互联专注于竹溪企业网站建设,响应式网站,电子商务商城网站建设。竹溪网站建设公司,为竹溪等地区提供建站服务。全流程按需设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

一:Promise.allSettled


Promise.all 缺陷

都知道 Promise.all 具有并发执行异步任务的能力。但它的大问题就是如果其中某个任务出现异常(reject),所有任务都会挂掉,Promise直接进入 reject  状态。


想象这个场景:你的页面有三个区域,分别对应三个独立的接口数据,使用 Promise.all 来并发三个接口,如果其中任意一个接口服务异常,状态是reject,这会导致页面中该三个区域数据全都无法渲染出来,因为任何 reject 都会进入catch回调, 很明显,这是无法接受的,如下:


Promise.all([
  Promise.reject({code: 500, msg: '服务异常'}),
  Promise.resolve({ code: 200, list: []}),
  Promise.resolve({code: 200, list: []})
])
.then((ret) => {
  // 如果其中一个任务是 reject,则不会执行到这个回调。
  RenderContent(ret);
})
.catch((error) => {
  // 本例中会执行到这个回调
  // error: {code: 500, msg: "服务异常"}
})

本文题目:ES2020新特性(种草)-创新互联
网页链接:http://chengdu.cdxwcx.cn/article/dheoip.html