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语法更加简洁易懂,推荐使用