ES6中,迭代器、Generator函数及其异步应用如何实现?

更新于
2026-10-02 10:48:49
1阅读来源:SEO基础
  • 内容介绍
  • 相关推荐

本文共计2455个文字,预计阅读时间需要10分钟。

最近在写RN相关的东西,涉及到redux-saga。saga的实现原理其实就是ES6中的Generator函数,而Generator函数和迭代器有着密不可分的关系。所以,本篇博客先学习了iterator相关的知识。

最近在写RN相关的东西,其中涉及到了redux-saga ,saga的实现原理就是ES6中的Generator函数,而Generator函数又和迭代器有着密不可分的关系。所以本篇博客先学习总结了iterator相关的东西,然后又介绍了Generator相关的内容,最后介绍了使用Generator进行异步编程。本篇博客所涉及的示例使用TypeScript语言编写,当然所涉及的特性是基于ES6规范的,使用TS语言不影响来阐述和总结ES6的相关特性。下篇博客准备系统梳理一下saga相关的内容。

一、迭代器

之前再聊迭代器模式时,使用Swift语言自定义过迭代器,在TS中也有迭代器。此处的迭代器与之前所介绍的迭代器是大同小异的。首先我们先来自定义一个迭代器,然后再看一下ES6中的迭代器的使用方式。

1、自定义迭代器

下方定义了一个迭代器函数,函数说明如下:

  • 该函数接收一个数组类型的参数,我们可以将需要创建迭代器的数组作为参数传进来。
  • 函数内部定义了一个 nextIndex 参数用来记录迭代器的位置。
  • 该函数返回一个迭代器对象,该迭代器对象包含一个key为 next , value为匿名函数的属性。
  • 这个key为 next 的匿名方法的返回值为每次迭代器的返回结果对象,这个结果对象由 两个属性组成,value表示本次迭代器的值,done表示迭代器遍历是否结束。遍历到最后,最终返回的值为 { value: undefine, done: true }, 也就意味着迭代器遍历结束,value是undefined, done为true。
阅读全文

本文共计2455个文字,预计阅读时间需要10分钟。

最近在写RN相关的东西,涉及到redux-saga。saga的实现原理其实就是ES6中的Generator函数,而Generator函数和迭代器有着密不可分的关系。所以,本篇博客先学习了iterator相关的知识。

最近在写RN相关的东西,其中涉及到了redux-saga ,saga的实现原理就是ES6中的Generator函数,而Generator函数又和迭代器有着密不可分的关系。所以本篇博客先学习总结了iterator相关的东西,然后又介绍了Generator相关的内容,最后介绍了使用Generator进行异步编程。本篇博客所涉及的示例使用TypeScript语言编写,当然所涉及的特性是基于ES6规范的,使用TS语言不影响来阐述和总结ES6的相关特性。下篇博客准备系统梳理一下saga相关的内容。

一、迭代器

之前再聊迭代器模式时,使用Swift语言自定义过迭代器,在TS中也有迭代器。此处的迭代器与之前所介绍的迭代器是大同小异的。首先我们先来自定义一个迭代器,然后再看一下ES6中的迭代器的使用方式。

1、自定义迭代器

下方定义了一个迭代器函数,函数说明如下:

  • 该函数接收一个数组类型的参数,我们可以将需要创建迭代器的数组作为参数传进来。
  • 函数内部定义了一个 nextIndex 参数用来记录迭代器的位置。
  • 该函数返回一个迭代器对象,该迭代器对象包含一个key为 next , value为匿名函数的属性。
  • 这个key为 next 的匿名方法的返回值为每次迭代器的返回结果对象,这个结果对象由 两个属性组成,value表示本次迭代器的值,done表示迭代器遍历是否结束。遍历到最后,最终返回的值为 { value: undefine, done: true }, 也就意味着迭代器遍历结束,value是undefined, done为true。
阅读全文