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

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(){

  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());

}

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

相关推荐