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
function* parallelDownloads() {
let [text1,text2] = yield [
function* parallelTasks() {
let [resultA, resultB] = yield [
taskA(),
taskB()
];
console.log(text1, text2);
console.log(resultA, resultB);
}
```
上面代码中yield语句的参数是一个数组成员就是两个任务taskA和taskB只有等这两个任务都完成了才会接着执行下面的语句。
上面代码中,`yield`语句的参数是一个数组成员就是两个任务taskA和taskB只有等这两个任务都完成了才会接着执行下面的语句。
### 3部署iterator接口

View File

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