1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-27 12:22:21 +00:00

修改iterator

This commit is contained in:
Ruan Yifeng 2015-03-06 12:16:34 +08:00
parent db97b33931
commit efb2ef93e7
2 changed files with 4 additions and 2 deletions

View File

@ -4,7 +4,7 @@
### 概念
JavaScript原有的数据结构主要是数组Array和对象ObjectES6又添加了Map和Set用户还可以组合使用它们定义自己的数据结构。这就需要一种统一的接口机制来处理所有不同的数据结
JavaScript原有的数据结构主要是数组Array和对象ObjectES6又添加了Map和Set用户还可以组合使用它们定义自己的数据结构。这就需要一种统一的接口机制来处理所有不同的数据结
遍历器Iterator就是这样一种机制。它属于一种接口规格任何数据结构只要部署这个接口就可以完成遍历操作即依次处理该结构的所有成员。它的作用有两个一是为各种数据结构提供一个统一的、简便的接口二是使得数据结构的成员能够按某种次序排列。在ES6中遍历操作特指for...of循环即Iterator接口主要供for...of消费。
@ -260,7 +260,7 @@ let arr = ['b', 'c'];
上面代码的扩展运算符内部就调用iterator接口。
实际上这提供了一种简便机制可以将任何部署了iterator接口的对象,转为对象
实际上这提供了一种简便机制可以将任何部署了iterator接口的数据结构转为数组。也就是说只要某个数据结构部署了iterator接口就可以对它使用扩展运算符将其转为数组
```javascript

View File

@ -472,6 +472,8 @@ async function asyncValue(value) {
上面代码中asyncValue函数前面有async关键字表明函数体内有异步操作。执行的时候遇到await语句就会先返回等到timeout函数执行完毕再返回value。
ES6将await增加为保留字。使用这个词作为标识符在ES5是合法的在ES6将抛出SyntaxError。
### 与Promise、Generator的比较
我们通过一个例子来看Async函数与Promise、Generator函数的区别。