co 函數庫

參考

co 函數庫是用於 Generator 函數自動執行的一個小工具。html

usge

var co = require('co');
co(gen);// gen 是一個Generator 函數
// co 函數返回一個 promise
co(gen).then(function (){
  console.log('Generator 函數執行完成');
})
// 上面代碼中,等到 Generator 函數執行結束,就會輸出一行提示。

原理

Generator 函數就是一個異步操做的容器,它的自動執行須要一種機制,當異步操做有告終果,可以自動交回執行權git

兩種方法能夠作到這一點:github

  1. 回調,將異步操做包裝成 Thunk 函數,在回調函數裏面交回執行權。
  2. promise .then()

co 函數其實就是將兩種自動執行器( Thunk 函數和 Promise 對象),包裝成一個庫。promise

  • 使用 co 的前提是, Generator 函數內的 yield 命令後面,只能是 Thunk 函數 或者 promise 對象。

源碼

源碼解析看參考連接。異步

相關文章
相關標籤/搜索