成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

co 函數(shù)庫(kù)

張紅新 / 2067人閱讀

摘要:參考函數(shù)庫(kù)是用于函數(shù)自動(dòng)執(zhí)行的一個(gè)小工具。是一個(gè)函數(shù)函數(shù)返回一個(gè)函數(shù)執(zhí)行完成上面代碼中,等到函數(shù)執(zhí)行結(jié)束,就會(huì)輸出一行提示。函數(shù)其實(shí)就是將兩種自動(dòng)執(zhí)行器函數(shù)和對(duì)象,包裝成一個(gè)庫(kù)。使用的前提是,函數(shù)內(nèi)的命令后面,只能是函數(shù)或者對(duì)象。

參考

reference 1

reference 2

co 函數(shù)庫(kù)是用于 Generator 函數(shù)自動(dòng)執(zhí)行的一個(gè)小工具。

usge
var co = require("co");
co(gen);// gen 是一個(gè)Generator 函數(shù)
// co 函數(shù)返回一個(gè) promise
co(gen).then(function (){
  console.log("Generator 函數(shù)執(zhí)行完成");
})
// 上面代碼中,等到 Generator 函數(shù)執(zhí)行結(jié)束,就會(huì)輸出一行提示。
原理

Generator 函數(shù)就是一個(gè)異步操作的容器,它的自動(dòng)執(zhí)行需要一種機(jī)制,當(dāng)異步操作有了結(jié)果,能夠自動(dòng)交回執(zhí)行權(quán)

兩種方法可以做到這一點(diǎn):

回調(diào),將異步操作包裝成 Thunk 函數(shù),在回調(diào)函數(shù)里面交回執(zhí)行權(quán)。

promise .then()

co 函數(shù)其實(shí)就是將兩種自動(dòng)執(zhí)行器( Thunk 函數(shù)和 Promise 對(duì)象),包裝成一個(gè)庫(kù)。

使用 co 的前提是, Generator 函數(shù)內(nèi)的 yield 命令后面,只能是 Thunk 函數(shù) 或者 promise 對(duì)象。

源碼

源碼解析看參考鏈接。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/95748.html

相關(guān)文章

  • 異步發(fā)展流程 —— Generators + co 讓異步更優(yōu)雅

    摘要:遍歷器原有的表示集合的數(shù)據(jù)結(jié)構(gòu),主要有和,在中又加入了和,這樣就有了四種數(shù)據(jù)集合,還可以組合使用它們,如數(shù)組的成員是或,這樣就需要一種統(tǒng)一的接口機(jī)制,用來(lái)處理所有不同的數(shù)據(jù)結(jié)構(gòu)。 showImg(https://segmentfault.com/img/remote/1460000018998438?w=900&h=431); 閱讀原文 Generators 簡(jiǎn)介 Generato...

    dingda 評(píng)論0 收藏0
  • co玩轉(zhuǎn)異步

    摘要:否則不會(huì)得到異步之后的值對(duì)象的值,并沒(méi)有在中進(jìn)行處理,而是直接作為返回值返回到對(duì)象外面了這就是的魔法。當(dāng)生成器函數(shù)內(nèi)的邏輯執(zhí)行完畢且沒(méi)有錯(cuò)誤之后,這個(gè)對(duì)象返回值變?yōu)闋顟B(tài),且將生成器的返回值作為出來(lái)的值。 之前我在關(guān)于Promise的文章中提到了co這個(gè)庫(kù)。在這篇文章里,我將寫(xiě)一寫(xiě)自己對(duì)它的認(rèn)識(shí)。 Trust me,用了co庫(kù),你不想用別的,來(lái)它半斤異步調(diào)用你一口能吃仨。 但是我對(duì)Tj大...

    microelec 評(píng)論0 收藏0
  • 前端每周清單半年盤(pán)點(diǎn)之 JavaScript 篇

    摘要:前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開(kāi)發(fā)教程工程實(shí)踐深度閱讀開(kāi)源項(xiàng)目巔峰人生等欄目。背后的故事本文是對(duì)于年之間世界發(fā)生的大事件的詳細(xì)介紹,闡述了從提出到角力到流產(chǎn)的前世今生。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開(kāi)發(fā)教程、工程實(shí)踐、深度閱讀、開(kāi)源項(xiàng)目、巔峰人生等欄目。歡迎...

    Vixb 評(píng)論0 收藏0
  • co.js - 讓異步代碼同步化

    摘要:前端開(kāi)發(fā)群是大神所編寫(xiě)的異步解決方案的庫(kù),用于讓異步的代碼同步化。對(duì)于異步代碼來(lái)說(shuō),回調(diào)函數(shù)是最基礎(chǔ)的方案,帶來(lái)的弊端也顯而易見(jiàn)。讓代碼扁平化,而讓代碼同步化。 近期在全力開(kāi)發(fā)個(gè)人網(wǎng)站,并且又沉淀了一些前后端的技術(shù)。近期會(huì)頻繁更新。 這篇文章首發(fā)于我的個(gè)人網(wǎng)站:聽(tīng)說(shuō) - https://tasaid.com,建議在我的個(gè)人網(wǎng)站閱讀,擁有更好的閱讀體驗(yàn)。 這篇文章與 博客園 和 Segm...

    lanffy 評(píng)論0 收藏0
  • generator、co模塊和async三者的區(qū)別

    摘要:也就是說(shuō),函數(shù)的執(zhí)行,與普通函數(shù)一模一樣,只要一行。表示函數(shù)里有異步操作,表示緊跟在后面的表達(dá)式需要等待結(jié)果。函數(shù)庫(kù)約定,命令后面只能是函數(shù)或?qū)ο?,而函?shù)的命令后面,可以跟對(duì)象和原始類型的值數(shù)值字符串和布爾值,但這時(shí)等同于同步操作。 generator 特點(diǎn) function* 可以使用yield返回多次 調(diào)用方法 使用next()執(zhí)行g(shù)enerator代碼,每次遇到y(tǒng)ield...

    lanffy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<