ES6注

Posted shirliey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6注相关的知识,希望对你有一定的参考价值。

1、Promise构造函数

//resolve(成功),reject(失败)两个参数
function runAsync()
  var p = new Promise(function(resolve,reject)
    //做一些异步操作
    setTimeout(function()
      console.log(‘执行完成‘);
      resolve(‘执行完成数据‘);
    );
  );  
  return p;

runAsync();

then、catch

//链式操作
runAsync()
  .then(function(data)
    console.log(data);
    return runAsync2();
  )
  .then(function(data)
    console.log(data);
  )
//then-catch
runAsync()
  .then(function(data)
    console.log(‘resolved-‘+data);
  )
  .catch(function(reason)
    console.log(‘rejected-‘+reason);
  );

all的用法:并行执行,所有异步操作执行完才执行回调

runAsync()
  .all([runAsync1(), runAsync2(), runAsync3()])
  .then(function(results)
    console.log(results);
  );

race的用法:先执行完一个异步操作就执行回调

runAsync()
  .race([runAsync1(), runAsync2(), runAsync3()])
  .then(function(results)
    console.log(results);
  );

 2、三点运算符(...):浅拷贝

对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中。

let obj2 = ...obj1; //浅拷贝,修改obj2会同步修改obj1

注意:如果将扩展运算符用于数组赋值,只能放在参数的最后一位,否则会报错。

const [...rest, last] = [1, 2, 3, 4, 5];
// 报错
const [first, ...rest, last] = [1, 2, 3, 4, 5];
// 报错

扩展运算符还可以将字符串转为真正的数组

[...‘hello‘]
// [ "h", "e", "l", "l", "o" ]

 

以上是关于ES6注的主要内容,如果未能解决你的问题,请参考以下文章

ES6的箭头函数详解:

ES6 Set的用法

ES6之数值的扩展

webpack+react+es6开发模式

ES6学习总结之一

关于ES6的数组字符串方法