美文网首页
ES2020新特性

ES2020新特性

作者: 小啊美 | 来源:发表于2020-04-04 23:26 被阅读0次
  1. Promise.allSettled
    优势: 在并发任务重,任务异常或者正常,都会返回对应的状态(fulfilled 或者 rejected)和结果(业务value或者拒绝原因reason),在then里通过过滤来得到想要的业务逻辑,最大限度的保障业务当前状态的可访问性。它的出现是解决 Promise.all的问题(如果某个任务出现异常reject,所有任务都会挂掉,Promise直接进入reject状态)
Promise.allSettled([
  Promise.reject({code: 500, msg: '异常'}),
  Promise.resolve({code: 200,data: []}),
  Promise.resolve({code: 200,data:[}),
]).then(ret => {
  /*
    0: { status: 'rejected',  reason:{} }
    1: { status: 'fulfilled', value:{} }
    2: { status: 'fulfilled', value:{} }
  */
  // 过滤掉rejected状态,尽可能多的保证页面区域数据渲染
  renderContent(ret.filter(el => {
    return el.status !== 'rejected';
}))
})
  1. 可选链
    日常代码:
var name = user && user.info && user.info.name

使用可选链:

var name = user?.info?.name

var age = user?.info?.getAge?.()

3.空值合并运算符
日常写法:

var name = (user.data && user.data.name) || '小明'

使用空值合并运算符:

var name = `${user.name}级` ?? '暂无等级';
  1. dynamic-import(按需引入)
    按需加载,为了首屏加载更快,比如懒加载图片等
el.onclick = () => {
  import(`/path/index.js`)
  .then(module => {
      module.doSomthing()
   })
  .catch(err => {
    // load error
  })
}

相关文章

  • ES2020 新特性

    ES2020已经落地了,其中几个新特性实用性还是不错的,这就意味着,现在对 ES2020 中 Javascript...

  • ES2020新特性?? ?.

    专心搞前端的第9天 今天遇到一题让我一脸懵逼的面试题。 完全看不懂怎么办,怎么那么多奇怪的???网上搜了好久都没找...

  • ES2020新特性

    可选链操作符(Optional Chaining) 作用:让我们在查询具有多个层级对象时,不再需要进行冗余的各种前...

  • es2020新特性

    文章来源:方凳雅集 前言自从ES6发布之后,TC39这个负责开发ECMAScript标准的机构每年都会发布新特性。...

  • ES2020新特性

    可选链 (Optional chaining) 可选链 让我们在查询具有多层级的对象时,不需要再进行冗余的各种前置...

  • es2020新特性

    ES2020 是 ECMAScript 对应 2020 年的版本。这个版本不像 ES6 (ES2015)那样包含大...

  • ES2020新特性

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

  • ES2020新特性

    前言 ES2020 是 ECMAScript 对应 2020 年的版本。这个版本不像 ES6 (ES2015)那样...

  • ES2020新特性

    Promise.allSettled优势: 在并发任务重,任务异常或者正常,都会返回对应的状态(fulfilled...

  • ES2020新特性

    https://github.com/tc39/ecma262/commit/248851026c4690c8dc...

网友评论

      本文标题:ES2020新特性

      本文链接:https://www.haomeiwen.com/subject/ykxephtx.html