摘要:參考函數(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è)小工具。
usgevar 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
摘要:遍歷器原有的表示集合的數(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...
摘要:否則不會(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大...
摘要:前端每周清單專注前端領(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)目、巔峰人生等欄目。歡迎...
摘要:前端開(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...
摘要:也就是說(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...
閱讀 2900·2021-11-17 09:33
閱讀 3683·2021-11-16 11:42
閱讀 3504·2021-10-26 09:50
閱讀 1359·2021-09-22 15:49
閱讀 3055·2021-08-10 09:44
閱讀 3692·2019-08-29 18:36
閱讀 3948·2019-08-29 16:43
閱讀 2233·2019-08-29 14:10