国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

co+generator

wizChen / 3031人閱讀

摘要:迭代器函數的定義迭代器中需要返回一個對象這個對象中需要有一個方法,方法調用后,可以返回一個對象對象中有兩個參數第一個迭代出的結果可以暫停可以支持異步線性執行怎么實現

迭代器函數的定義 迭代器中需要返回一個對象這個對象中需要有一個next方法,next方法調用后,可以返回一個對象對象中有兩個參數 第一個done value迭代出的結果

function * a() {
  let x = yield 100;
  console.log("x",x);
  let y = yield 200;
  console.log(y);
  let z = yield 300;
  return z
}


// let flag = false;
// do {
//   let {done,value} = it.next();
//   console.log(value);
//   flag = done;
// } while (!flag);
co
let fs = require("mz/fs");
// let co = require("co");
//  generator  => async + await

function * read() { // 可以暫停 可以支持promise 
  let age = yield fs.readFile("./name.txt","utf8");
  let adress = yield fs.readFile(age,"utf8");
  let r = yield fs.readFile(adress,"utf8");
  return r;
}

function co(it) {
  return new Promise((resolve,reject)=>{
     // 異步線性執行怎么實現 koa express
    function next(data) {
      let { value, done } = it.next(data);
       if(!done){
         value.then(data=>{
           next(data)
         }, reject);
       }else{
         resolve(value);
       }
     }
     next();
  })
}

co(read()).then(data=>{
  console.log(data);
},err=>{
  console.log(err);
});

// let it = read();
// it.next().value.then(data=>{
//   it.next(data).value.then(data=>{
//     it.next(data).value.then(data=>{
//       console.log(it.next(data).value);
//     })
//   })
// })

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/114720.html

相關文章

  • Koa源碼閱讀筆記(1) -- co

    摘要:正好自己之前也想看的源代碼,所以趁著這個機會,一口氣將其讀完。源碼解讀的源代碼十分簡潔,一共才兩百余行。結語的源代碼讀取來不難,但其處理方式卻令人贊嘆。而且閱讀的源代碼,是閱讀源碼的必經之路。 本筆記共四篇Koa源碼閱讀筆記(1) -- coKoa源碼閱讀筆記(2) -- composeKoa源碼閱讀筆記(3) -- 服務器の啟動與請求處理Koa源碼閱讀筆記(4) -- ctx對象 起...

    taoszu 評論0 收藏0
  • co源碼分析及其實踐

    摘要:返回的結果是一個對象,類似于表示本次后面執行之后返回的結果。對象用于一個異步操作的最終完成或失敗及其結果值的表示簡單點說就是處理異步請求。源碼分析主要脈絡函數調用后,返回一個實例。參考鏈接解釋對象的用法的源碼及其用法 本文始發于我的個人博客,如需轉載請注明出處。為了更好的閱讀體驗,可以直接進去我的個人博客看。 前言 知識儲備 閱讀本文需要對Generator和Promise有一個基本的...

    vincent_xyb 評論0 收藏0
  • 異步發展流程 —— Generators + co 讓異步更優雅

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

    dingda 評論0 收藏0
  • co模塊用法及分析

    摘要:模塊可以將異步解放成同步。源碼分析使用的模塊版本號為首先看一些用于判斷對象類型的函數對數組方法的引用這兩個應該就不用說了吧。。。看一下模塊的輸出部分因此以下三種用法等價接著就是重頭戲函數了。 本文只在個人博客和 SegmentFault 社區個人專欄發表,轉載請注明出處 個人博客: https://zengxiaotao.github.io SegmentFault 個人專欄: h...

    muzhuyu 評論0 收藏0
  • 走一步再走一步,揭開co的神秘面紗

    摘要:其實就是判斷了的屬性是不是個函數再接著,如果是個函數或者生成器,那就像你自己調用函數一樣,手動傳到里面去執行。 前言 原文地址 源碼地址 了解co的前提是已經知曉generator是什么,可以看軟大神的Generator 函數的語法,co是TJ大神寫的能夠使generator自動執行的函數庫,而我們熟知的koa也用到了它管理異步流程控制,將異步任務書寫同步化,爽的飛起,也擺脫了一直以來...

    _Dreams 評論0 收藏0

發表評論

0條評論

wizChen

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<