ES6学习笔记之async函数

async函数跟promise,generator一样也是处理异步的,但是async的写法更为简洁

大家可以先来看下async的特点:

1、语义化强,async就是异步的,await就是等待,很好理解

结构就是async function a(){

  await xxx

}

2、await要放在async组合使用,不能跟其他函数搭配

3、async函数返回的是一个Promsie对象,所以后面还可以跟then这些搭配使用

4、如果async里面的promise是reject,那么后面的代码就不会再执行了

举个栗子:

async function fn(){

扫描二维码关注公众号,回复: 9696882 查看本文章

  await Promise.reject("出大事了!!");

  let a = await Promise.resolve("很棒!");

  console.log(a);

}

fn.().then(res=>{

  console.log(res);

}),catch(err=>{

  console.log(err)

})

//输出:出大事了

在这个例子中,async跟await搭配使用,因为在fn里面先执行了promise.reject,所以下面的“很棒”就不会再执行了,假如将这个两个的顺序调换一下,先resolve,再reject,则最后两个结果都能够输出

async在处理读取文件上尤为出色,用promise跟generator需要写很多次的代码,async只需要用await按顺序写就可以,非常的简洁:

async function readFile(){ 

  let a1 = await read('1.txt');

  let a2 = await read('2.txt');

  let a3 = await read('3.txt');

  console.log(a1.toString());

  console.log(a2.toString());

  console.log(a2.toString());

}

猜你喜欢

转载自www.cnblogs.com/hongyafang/p/12427545.html