首页 > 其他 > 详细

ES6注

时间:2019-07-16 14:31:29      阅读:64      评论:0      收藏:0      [点我收藏+]

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注

原文:https://www.cnblogs.com/shirliey/p/11194429.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!