非同步解決之Generator

2022-09-05 03:09:14 字數 556 閱讀 6408

generator

1、 生成方式:

function * fn1()

fn1.next() //使用

傳遞引數

fn1.next(name:'qiang');

這個引數上傳給上乙個yiel關鍵字的返回值。

實戰!

function* initdata() 

let gen = initdata();

gen.next().value.then(res => )

})})

由於過程比較繁瑣一直呼叫then()方法。所以進行了優化

編寫乙個執行器,去遞迴呼叫執行。

//執行器

function run() else )}}

step(lt.next());

})}

這也是async/await的實現原理

JS非同步程式設計之Generator

前言 es6 中提出乙個叫生成器 generator 的概念,執行生成器函式,會返回迭代器物件 iterator 這個迭代器物件可以遍歷函式內部的每乙個狀態。function helloworldgenerator 通過執行生成器返回迭代器物件 var helloworlditerator hell...

使用Generator函式進行非同步程式設計

generator函式在工作中還沒有用到過,一直在使用async,最近在看async的原理,發現它只是generator的語法糖。generator的基礎知識之前寫過文章介紹過 這裡主要討論一下怎麼使用generator函式來進行非同步程式設計。先來看下面的 1 function g 6 const...

Python 解決列印generator物件的問題

迴圈中不適用陣列定義封裝而直接用函式呼叫,會使用元組,則會出現generator物件 def sentence to id self,sentence word ids self.word to id cur word for cur word in sentence.split return wo...