mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-27 12:22:21 +00:00
修改iterator
This commit is contained in:
parent
db97b33931
commit
efb2ef93e7
@ -4,7 +4,7 @@
|
||||
|
||||
### 概念
|
||||
|
||||
JavaScript原有的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set,用户还可以组合使用它们,定义自己的数据结构。这就需要一种统一的接口机制,来处理所有不同的数据结果。
|
||||
JavaScript原有的数据结构,主要是数组(Array)和对象(Object),ES6又添加了Map和Set,用户还可以组合使用它们,定义自己的数据结构。这就需要一种统一的接口机制,来处理所有不同的数据结构。
|
||||
|
||||
遍历器(Iterator)就是这样一种机制。它属于一种接口规格,任何数据结构只要部署这个接口,就可以完成遍历操作,即依次处理该结构的所有成员。它的作用有两个,一是为各种数据结构,提供一个统一的、简便的接口,二是使得数据结构的成员能够按某种次序排列。在ES6中,遍历操作特指for...of循环,即Iterator接口主要供for...of消费。
|
||||
|
||||
@ -260,7 +260,7 @@ let arr = ['b', 'c'];
|
||||
|
||||
上面代码的扩展运算符内部就调用iterator接口。
|
||||
|
||||
实际上,这提供了一种简便机制,可以将任何部署了iterator接口的对象,转为对象。
|
||||
实际上,这提供了一种简便机制,可以将任何部署了iterator接口的数据结构,转为数组。也就是说,只要某个数据结构部署了iterator接口,就可以对它使用扩展运算符,将其转为数组。
|
||||
|
||||
```javascript
|
||||
|
||||
|
@ -472,6 +472,8 @@ async function asyncValue(value) {
|
||||
|
||||
上面代码中,asyncValue函数前面有async关键字,表明函数体内有异步操作。执行的时候,遇到await语句就会先返回,等到timeout函数执行完毕,再返回value。
|
||||
|
||||
ES6将await增加为保留字。使用这个词作为标识符,在ES5是合法的,在ES6将抛出SyntaxError。
|
||||
|
||||
### 与Promise、Generator的比较
|
||||
|
||||
我们通过一个例子,来看Async函数与Promise、Generator函数的区别。
|
||||
|
Loading…
x
Reference in New Issue
Block a user