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的部分语法)