ES6之Generator和async
目录 一、概述 二、Generator函数 1. 基本原理 2. 使用语法 (1)yield表达式 (2)yield*表达式 (3)for ... of循环 (4)return和throw 3. Generator函数的异步应用 三、async函数 1. 基本原理 2. 语法规范 (1)await命令 (2)错误处理 总结 一、概述 Generator和async是ES6提供的新的异步解决方案。 Generator函数可以理解为一个可以输出多个值的状态机。它的返回值是一个遍历器对象(Iterator),每次调用该遍历器的next方法就会输出一个值。当有多个异步操作需要按序执行时,只要在完成一个时调一次next方法即可执行下一个。不过想要自动化执行Generator函数则需要借助一些工具。 async函数则是Generator函数的语法糖,它为Generator函数内置了自动执行器。用async函数写出的异步代码几乎与同步代码没有什么差别,使用async函数,不需要任何外部工具,即可写出格式优雅的异步代码。 总的来说,Generator函数定义了一种新的异步模型,而async函数通过对该模型的再封装,提供了一种优雅的异步解决方案。 下面我们分别对两者展开详细探讨。 二、Generator函数 1. 基本原理 众所周知,在JavaScript中,任何函数最多只能有一个返回值