麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

擴展微信小程序框架功能:Generator組件的使用

2020-03-21 16:19:20
字體:
來源:轉載
供稿:網友

Generator函數是ES6提供的一種異步編程解決方案,語法行為與傳統函數完全不同。Generator 生成器允許你通過寫一個可以保存自己狀態的的簡單函數來定義一個迭代算法。Generator 是一種可以停止并在之后重新進入的函數。生成器的環境(綁定的變量)會在每次執行后被保存,下次進入時可繼續使用。generator 字面上是“生成器”的意思,在 ES6 里是迭代器生成器,用于生成一個迭代器對象。

Generator

Generator函數的調用方法與普通函數一樣,也是在函數名后面加上一對圓括號。不同的是,調用Generator函數后,該函數并不執行,返回的也不是函數運行結果,而是一個指向內部狀態的指針對象。接下來調用遍歷器對象的next方法,才會使指針移向下一個狀態。也就是說,每次調用next方法,內部指針就從函數頭部或上一次停下來的地方開始執行,直到遇到下一個yield語句(或return語句)為止。這樣可以產生一定的序列值。

Generator 可以幫助我們讓代碼風格更整潔--用同步的代碼風格來寫異步代碼,它本質上是一個可以暫停計算并且可以隨后返回表達式的值的函數。

Generator對象是由一個生成器函數 generator function 返回的。并且它是同時遵守 The iterable protocol 可遍歷協議和The iterator protocol 迭代器模式協議。

 function* gen() {    yield 1;   yield 2;   yield 3; } var g = gen(); // "Generator { }"

co

co是一個基于ES6 Generator特性實現的異步流程同步化寫法的工具庫。co 函數庫是著名程序員 TJ Holowaychuk 于2013年6月發布的一個小工具,用于 Generator 函數的自動執行。

co需要使用Promise特性。co 函數庫其實就是將兩種自動執行器(Thunk 函數和 Promise 對象),包裝成一個庫。使用 co 的前提條件是,Generator 函數的 yield 命令后面,只能是 Thunk 函數或 Promise 對象。

基本用法

有一個 Generator 函數。

  var gen = function* () {    var a = Promise.resolve(1);    var b = Promise.resolve(2);    var c = Promise.resolve(3);    var res = yield [a, b, c];    console.log(res); // 輸出:[1, 2, 3]  };  co(gen).then(function(){    console.log('Generator函數執行完畢了'); // 輸出:Generator函數執行完畢了  });

上面代碼中,Generator 函數只要傳入 co 函數,就會自動執行。co 函數返回一個 Promise 對象,可以用 then 方法添加回調函數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久草免费资源视频 | 欧美亚洲一区二区三区四区 | 在线成人免费观看 | 在线观看视频毛片 | 操网| 一级黄色片武则天 | 手机av免费在线 | 99精品视频网站 | 欧美成人高清视频 | 小视频在线看 | 久久激情国产 | 亚洲成人激情av | 桥本有菜免费av一区二区三区 | 国产免费激情视频 | 国产精品视频在线观看免费 | 蜜桃网站在线观看 | 少妇一级淫片免费放4p | 欧美精品欧美极品欧美激情 | 高清av在线| 久久国产精品免费视频 | 狠狠操夜夜爱 | 深夜激情视频 | 亚洲精品一区二区三区免 | 一区二区三区播放 | 欧美一级精品片在线看 | 欧美视频在线一区二区三区 | 久久蜜臀一区二区三区av | 国产精品视频一区二区三区四 | 中国老女人一级毛片视频 | 亚洲成人黄色片 | 国产精品久久在线观看 | 国产大片在线观看 | 国产欧美精品一区二区三区四区 | 免费91在线 | 麻豆19禁国产青草精品 | 欧美黄色性生活视频 | 九色在线78m | 国产成人综合在线观看 | 欧美老外a级毛片 | 亚洲人成免费 | 亚洲午夜久久久精品一区二区三区 |