co 函數庫

參考

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

usge

var co = require('co');
co(gen);// gen 是一個Generator 函數
// co 函數返回一個 promise
co(gen).then(function (){
  console.log('Generator 函數實行完成');
})
// 上面代碼中,比及 Generator 函數實行完畢,就會輸出一行提醒。

道理

Generator 函數就是一個異步操縱的容器,它的自動實行須要一種機制,當異步操縱有了效果,能夠自動交回實行權

兩種要領能夠做到這一點:

  1. 回調,將異步操縱包裝成 Thunk 函數,在回調函數內里交回實行權。
  2. promise .then()

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

  • 運用 co 的條件是, Generator 函數內的 yield 敕令背面,只能是 Thunk 函數 或許 promise 對象。

源碼

源碼剖析看參考鏈接。

    原文作者:Stanny2017
    原文地址: https://segmentfault.com/a/1190000015418160
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞