1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-28 21:32:20 +00:00

docs: edit generator

This commit is contained in:
ruanyf 2016-06-01 12:47:11 +08:00
parent be282bd913
commit 399c635290
2 changed files with 32 additions and 17 deletions

View File

@ -1318,21 +1318,23 @@ function* f(){
}; };
``` ```
上面代码使用Promise的函数库Qyield语句返回的就是一个Promise对象。 上面代码使用Promise的函数库`Q``yield`语句返回的就是一个Promise对象。
多个任务按顺序一个接一个执行时yield语句可以按顺序排列。多个任务需要并列执行时比如只有A任务和B任务都执行完才能执行C任务可以采用数组的写法。 如果`yield`语句后面的参数,是一个具有遍历器接口的对象,`yield`会遍历这个对象,再往下执行。这意味着,
多个任务按顺序一个接一个执行时,`yield`语句可以按顺序排列。多个任务需要并列执行时比如只有A任务和B任务都执行完才能执行C任务可以采用数组的写法。
```javascript ```javascript
function* parallelDownloads() { function* parallelTasks() {
let [text1,text2] = yield [ let [resultA, resultB] = yield [
taskA(), taskA(),
taskB() taskB()
]; ];
console.log(text1, text2); console.log(resultA, resultB);
} }
``` ```
上面代码中yield语句的参数是一个数组成员就是两个任务taskA和taskB只有等这两个任务都完成了才会接着执行下面的语句。 上面代码中,`yield`语句的参数是一个数组成员就是两个任务taskA和taskB只有等这两个任务都完成了才会接着执行下面的语句。
### 3部署iterator接口 ### 3部署iterator接口

View File

@ -354,18 +354,18 @@ ES7推出了字符串补全长度的功能。如果某个字符串不够指定
传统的JavaScript语言输出模板通常是这样写的。 传统的JavaScript语言输出模板通常是这样写的。
```javascript ```javascript
$("#result").append( $('#result').append(
"There are <b>" + basket.count + "</b> " + 'There are <b>' + basket.count + '</b> ' +
"items in your basket, " + 'items in your basket, ' +
"<em>" + basket.onSale + '<em>' + basket.onSale +
"</em> are on sale!" '</em> are on sale!'
); );
``` ```
上面这种写法相当繁琐不方便ES6引入了模板字符串解决这个问题。 上面这种写法相当繁琐不方便ES6引入了模板字符串解决这个问题。
```javascript ```javascript
$("#result").append(` $('#result').append(`
There are <b>${basket.count}</b> items There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em> in your basket, <em>${basket.onSale}</em>
are on sale! are on sale!
@ -390,7 +390,7 @@ var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?` `Hello ${name}, how are you ${time}?`
``` ```
上面代码中的字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。 上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。
```javascript ```javascript
var greeting = `\`Yo\` World!`; var greeting = `\`Yo\` World!`;
@ -399,13 +399,26 @@ var greeting = `\`Yo\` World!`;
如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。 如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。
```javascript ```javascript
$("#warning").html(` $('#list').html(`
<h1>Watch out!</h1> <ul>
<p>Unauthorized hockeying can result in penalties <li>first</li>
of up to ${maxPenalty} minutes.</p> <li>second</li>
</ul>
`); `);
``` ```
上面代码中,所有模板字符串的空格和换行,都是被保留的,比如`<ul>`标签前面会有一个换行。如果你不想要这个换行,可以使用`trim`方法消除它。
```javascript
$('#list').html(`
<ul>
<li>first</li>
<li>second</li>
</ul>
`.trim());
```
模板字符串中嵌入变量,需要将变量名写在`${}`之中。 模板字符串中嵌入变量,需要将变量名写在`${}`之中。
```javascript ```javascript