微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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" ]

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐