ES2020新特性

https://kangax.github.io/compat-table/es6/ 

查询各个浏览器对ES的支持:https://kangax.github.io/compat-table/es2016plus/

1. Promise.allSettled

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

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


ES2020新特性_第1张图片

我们需要一种机制,如果并发任务中,无论一个任务正常或者异常,都会返回对应的的状态(fulfilled 或者 rejected)与结果(业务value 或者 拒因 reason),在 then 里面通过 filter 来过滤出想要的业务逻辑结果,这就能最大限度的保障业务当前状态的可访问性,而 Promise.allSettled 就是解决这问题的。


ES2020新特性_第2张图片

2. Optional Chaining

ES2020新特性_第3张图片


3. Nullish coalescing Operator

ES2020新特性_第4张图片


4. globalThis 

目的就是提供一种标准化方式访问全局对象,有了 globalThis 后,你可以在任意上下文,任意时刻都能获取到全局对象


5.String.prototype.matchAll


ES2020新特性_第5张图片


ES2020新特性_第6张图片

你可能感兴趣的:(ES2020新特性)