javascript之generator生成器函数与asnyc/await语法糖怎么使用


这篇文章主要讲解了“javascript之generator生成器函数与asnyc/await语法糖怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript之generator生成器函数与asnyc/await语法糖怎么使用”吧!相比于传统回调函数的方式处理异步调用,Promise最大的优势就是可以链式调用解决回调嵌套的问题。但是这样写依然会有大量的回调函数,虽然他们之间没有嵌套,但是还是没有达到传统同步代码的可读性。如果以下面的方式写异步代码,它是很简洁,也更容易阅读的。在ES2015提供了生成器函数(Generator Function)它与普通函数的语法差别在于,在function语句之后和函数名之前,有一个“*”作为生成器函数的标示符。在我们去调用生成器函数的时候他并不会立即去执行这个函数,而是会得到一个生成器对象,直到我们手动调用对象的next 方法,函数体才会开始执行,我们可以使用关键字yield去向外返回一个值,我们可以在next方法的返回值中去拿到这个值。另外再返回的属性中还有一个done关键字来表示生成器是否执行完了,yield不会像return一样去结束函数的执行,只是暂停函数的执行,直到外接下一次调用next方法时才会继续从yield位置往下执行调用next方法的时候传入了参数的话,所传入的参数会作为yield关键字的返回值如果我们调用了生成器函数的throw方法,这个方法会给生成器函数内部抛出一个异常利用生成器函数和Promise来实现异步编程的体验很明显生成器的执行器可以使用递归的方式去调用生成器函数的调用其实都是差不多的,所以我们可以写一个比较通用的执行器当然这样的执行器在免费云主机域名社区中已经有一个比较完善的库了co。这种co的方案在2015年之前是特别流行的,后来在出了async/await语法糖之后,这种方案相对来讲就没有那么普及了。使用generator这种方法最明显的变化就是异步调用回归到扁平化了有了generator之后js异步编程基本上与同步代码有类似的体验了,但是使用generator这种异步方案还需要自己手动去写一个执行器函数,会比较麻烦。在ES2017的版本中新增了一个叫做async的函数,它同样提供了这种扁平化的编程体验,并且是语言层面的标准的异步编程语法。其实async函数就是生成器函数更方便的语法糖,所以语法上给generator函数是类似的。async 函数返回一个Promise对象,更利于对整体代码控制感谢各位的阅读,以上就是“javascript之generator生成器函数与asnyc/await语法糖怎么使用”的内容了,经过本文的学习后,相信大家对javascript之generator生成器函数与asnyc/await语法糖怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: php中时间戳怎么获取

本篇内容主要讲解“php中时间戳怎么获取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中时间戳怎么获取”吧! 一、时间戳的定义在计算机科学中,时间戳是一种表示特定时间点的数字,通常由一个整数或浮点数表示,它表…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/02 11:13
下一篇 06/02 11:14

相关推荐