es6的部分语法

利用数组解构来实现值的互换

let a = 'test1', b = 'text2'
[a, b] = [b, a]
console.log(a) //  text2
console.log(b) //  test1

set快速去重

let arr = [1, 1, 2, 2, 3, 3];
let deduped = [...new Set(arr)] // [1, 2, 3]

Promise基本用法

const promise = new Promise(function(resolve, reject) {
  // ... some code

  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。
链式写法避免response串联带来数据重复

getJSON("/posts.json").then(function(json) {
  return json.post;
}).then(function(post) {
  // ...
});
promise
.then(result => {···}) // Promise 成功执行
.catch(error => {···}) //Promise  抛出异常
.finally(() => {···}); // 不管 Promise 对象最后状态如何,都会执行的操作

上面代码中,promise抛出一个错误,就被catch方法指定的回调函数捕获
Promise.all()

// 生成一个Promise对象的数组
const promises = [2, 3, 5, 7, 11, 13].map(function (id) {
  return getJSON('/post/' + id + ".json");
});

Promise.all(promises).then(function (posts) {
  // ...
}).catch(function(reason){
  // ...
});

上面代码中,promises是包含 6 个 Promise 实例的数组,只有这 6 个实例的状态都变成fulfilled,或者其中有一个变为rejected,才会调用Promise.all方法后面的回调函数。
Promise.allSettled()

const promises = [
  fetch('/api-1'),
  fetch('/api-2'),
  fetch('/api-3'),
];

await Promise.allSettled(promises);
removeLoadingIndicator();

上面代码对服务器发出三个请求,等到三个请求都结束,不管请求成功还是失败,加载的滚动图标就会消失。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前面的话   我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新...
    CodeMT阅读 524评论 0 0
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 3,046评论 3 37
  • 一.学习ES6(ECMAScript2015)前要搞明白两个问题,什么是ES6,为什么要学习ES6 1.什么是ES...
    往事已如过眼云烟阅读 755评论 0 0
  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 1,818评论 0 1
  • 如果是自学那肯定得需要视频和教程。学了两天慕课上一个南京大学老师教的课程设计。感觉真的有点晦涩难懂,照这样下去真心...
    一池栏尘阅读 125评论 0 0