Node.js 協調處理 (2)

基本介紹

教學目標

透過 co 套件在多個非同步事件處理進行協調。(以取得劇集資訊為例。)

前置作業

  1. 完成 Node.js 套件安裝與設置。

套件安裝

1
$ npm install co --save

使用教學

撰寫程式

drama_parser.js

1
2
3
4
5
6
7
8
9
10
var data = [{
id: 1,
name: "The Heirs"
}, {
id: 2,
name: "Running Man"
}, {
id: 3,
name: "My Lovable Girl"
}];

1
2
3
4
5
6
7
function* generator() {
for (var n=0; n<data.length; n++) {
console.log("第 " + ( n + 1 ) + " 部");
yield data[n];
console.log("開始從網站取得資料...");
}
}
1
2
3
4
5
6
7
8
9
10
11
var co = require('co');
co(function* () {
var iterator = generator();
while (true) {
var data = iterator.next();
if (data.done) {
break;
}
console.log("劇集名稱: " + data.value.name);
}
});

執行程式

1
$  node --harmony drama_parser.js

輸出結果

1
2
3
4
5
6
7
8
9
1
劇集名稱: The Heirs
開始從網站取得資料...
2
劇集名稱: Running Man
開始從網站取得資料...
3
劇集名稱: My Lovable Girl
開始從網站取得資料...

相關資源