美文网首页
es6 iterable

es6 iterable

作者: peerben | 来源:发表于2018-08-05 19:44 被阅读13次

首先一个对象数据结构能够用for of 或...解构,必须是iterable的

interface Iterable {
  [Symbol.iterator]() : Iterator,
}

interface Iterator {
  next(value?: any) : IterationResult,
}

interface IterationResult {
  value: any,
  done: boolean,
}

对象实现Iterable接口,并且返回一个Iterator, Iterator返回IterationResult格式的数据,那么这个对象就是一个iterable

如果在 Generator 函数内部,调用另一个 Generator 函数,默认情况下是没有效果的。
这个就需要用到yield*表达式,用来在一个 Generator 函数里面执行另一个 Generator 函数。

yield* 表达式用于委托给另一个generator 或可迭代对象。

yield* 后面接受一个 iterable object 作为参数,然后去迭代(iterate)这个迭代器(iterable object),同时 yield* 本身这个表达式的值就是迭代器迭代完成时(done: true)的返回值。调用 generator function 会返回一个 generator object,这个对象本身也是一种 iterable object,所以,我们可以使用 yield* generator_function() 这种写法。

相关文章

  • JavaScript-iterable数据类型

    iterable数据类型 。ES6新引入类型 。Array、Map、Set都属于iterable类型 。具有ite...

  • es6 iterable

    首先一个对象数据结构能够用for of 或...解构,必须是iterable的 对象实现Iterable接口,并且...

  • [JavaScript] generator

    ES6中的generator返回一个iterator/iterable,由“function*”定义,genera...

  • Javascript教程(七)iterable

    数组的遍历可以使用下标,但是Map,Set无法使用下标遍历。ES6标准引入了新的iterable类型,Array、...

  • JavaScript教程day09-iterable

    iterable 遍历Array可以采用下标循环,遍历Map和Set无法使用下标,为了统一集合类型,ES6标准引入...

  • JavaScript ES6新类型iterable

    ES5.1标准新增 obj | array.forEach(func)方法,支持函数式编程风格遍历。 遍历Arra...

  • JavaScript 里的 Iteration,简单了解一下

    ES6 引入了一种新的遍历数据的机制:Iteration,其中两个核心概念: Iterable:一个 iterab...

  • JavaScript iterable(迭代器)

    iterable 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引...

  • Array.from()

    Array.from()是ES6中新增的方法,可以将两类对象转为真正的数组:类数组对象和可遍历(iterable)...

  • dart Iterable、Stream

    Iterable迭代器 Iterable.empty()创建空Iterable。const factory Ite...

网友评论

      本文标题:es6 iterable

      本文链接:https://www.haomeiwen.com/subject/pxfivftx.html