生成器函数 javascript异步编程之generator与asnyc/await语法糖( 二 )

当然这样的执行器在社区中已经有一个比较完善的库了co 。这种co的方案在2015年之前是特别流行的,后来在出了async/await语法糖之后,这种方案相对来讲就没有那么普及了 。使用generator这种方法最明显的变化就是异步调用回归到扁平化了
async/await有了generator之后js异步编程基本上与同步代码有类似的体验了,但是使用generator这种异步方案还需要自己手动去写一个执行器函数,会比较麻烦 。在ES2017的版本中新增了一个叫做async的函数,它同样提供了这种扁平化的编程体验,并且是语言层面的标准的异步编程语法 。其实async函数就是生成器函数更方便的语法糖,所以语法上给generator函数是类似的 。
async function main() {try {const user1 = await ajax('/json1.json')console.log(user1)const user2 = await ajax('/json2.json')console.log(user2)const user3 = await ajax('/json3.json')console.log(user3)} catch (error) {console.log(error)}}main()async 函数返回一个Promise对象,更利于对整体代码控制
【生成器函数 javascript异步编程之generator与asnyc/await语法糖】promise.then(() => {console.log('all completed')}).catch(err => {console.log(err)})

原文地址: https://kspf.xyz/archives/21更多内容微信公众号搜索充饥的泡饭小程序搜一搜开水泡饭的博客

经验总结扩展阅读