async

async函数介绍:

async函数是ES2017引入的,是Generator函数的语法糖,将Generator函数中的*号替换为async,将yield替换为await。

特点:

1.不需要像Generator调用next方法,遇到await等待,当前的异步操作执行完成再往下执行

2.async的返回值是Promise对象,可以用.then进行下一步操作

3.语义明确,使用简单

基本使用:

例1:

由此可见,遇到await等待,异步操作完成后再执行后面的操作

例2:

在resolve中传参作为await的返回值

 例3:

还是之前用Promise和Generator解决过的问题:假设网易云音乐要根据点击的某首歌来获取该歌曲下面的评论,这就要求在请求一首歌曲的成功的回调中,再次请求评论

Promise解决:https://www.cnblogs.com/zxmonster/p/11895734.html

Generator解决:https://www.cnblogs.com/zxmonster/p/11923816.html

现在用async函数解决:

 

 总结:对比Promise、Generator和async三种解决异步操作的方法,async语法更加简洁易懂,推荐使用

原文地址:https://www.cnblogs.com/zxmonster/p/11924915.html