ES6中箭头函数,promise,async,import,export

267 阅读2分钟

1.箭头函数

function add(a,b){
    return  a + b 
}

let add = (a,b) =>{
    return a+b
}
  • 箭头函数 没有this,arguments,
  • 箭头函数 不能通过new关键字调用
  • 箭头函数 没有原型 ,也就是没有prototype
  • 箭头函数 不可以改变this , this跟外层的this

2.Promise

是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

const promise = new Promise(function(resolve, reject) {
  // ... some code
 
  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});

.then(callback,callback)  :  第一个callback是成功的回调,第二个callback是失败的回调

.catch(callback) :  是失败的回调

通常会写成 : 

promise.then((res)=>{}).catch((err)=>{}) 

Promise.all () :  全部执行完,才执行下一个,

Promise.race() : 只要有任意一个Promise成功或失败,就返回新的Promise对象

 

例子:需要发送2个请求all,可以用,

  需要第一个发送完,拿到数据,再发送第二个,那么也是用这个,链式调用;你也可以用async await方法,用两个await就好了

3. async函数

async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果

  1. 可以把异步操作包装成promise函数,await就是then命令的语法糖,可以把异步变成同步,
  2. async函数里面使用return会返回一个promise函数,在外面使用.then 方法获取回调函数
  3. async函数里面如果异常,不想要在.then里面获取,需要使用throw new Error(‘error’)来抛出异常,表示抛出错误,可以在reject函数中获取到,

4.module模块引用的严格模式

  • export 命令对外接口,如果你希望外部能够读取模块内部某个变量,就需要用export去输出
  • import 加载export命令下的模块
  • export default 匿名加载模块