生成器函式generator
function * fn(){
yield 10;
y = yield 'foo';
yield y;
}
var test = fn();
console.log(test.next()) // { value: 10, done: false }
console.log(test.next()); // { value: 'foo', done: false }
console.log(test.next(11)) // { value: 11, done: false }
console.log(test.next()) // { value: undefined, done: true }
1、函式生成器特點是函式名前面有一個‘*’
2、通過呼叫函式生成一個控制器
3、呼叫next()方法開始執行函式
4、遇到yield函式將暫停 5、再次呼叫next()繼續執行函式
function fn1() {
//假設這是一個ajax請求
return new Promise((resolve) => {
resolve(1)
})
}
function fn2() {
//假設這是一個ajax請求
return new Promise((resolve) => {
resolve(2)
})
}
function fn3() {
//假設這是一個ajax請求
return new Promise((resolve) => {
resolve(3)
})
}
//這裡是函式生成器
function* g() {
//當非同步操作完畢yield會得到值
//這裡會自動繼續執行
var res1 = yield fn1();
var res2 = yield fn2();
var res3 = yield fn3();
}
var test = g();
// it.next().value;
test.next().value.then((res1) => {
console.log(res1)
test.next().value.then(res2 => {
console.log(res2)
})
})
相關文章
- 探索es6系列之—-Generator生成器函式函式
- JavaScript Generator 函式JavaScript函式
- Generator 函式的使用函式
- ES6-Generator 函式 和 async 函式函式
- generator函式與async/await函式AI
- ES6 Generator函式函式
- Node v4 – Generator函式函式
- Generator函式非同步應用函式非同步
- ES6中的迭代器、Generator函式以及Generator函式的非同步操作函式非同步
- 非同步操作系列之Generator函式與Async函式非同步函式
- ES6 Generator 函式介紹函式
- javascript中generator函式的介紹JavaScript函式
- 五分鐘學會generator函式函式
- 生成器函式,迭代器函式
- async、await和generator函式內部原理AI函式
- es6:generator生成器
- 生成器 推導式 內建函式函式
- python 生成器 和生成器函式 以及各種推導式Python函式
- 學習筆記:javascript中的Generator函式筆記JavaScript函式
- 自定義生成器函式模擬Python內建函式filter()函式PythonFilter
- python生成器函式的特點Python函式
- 解析python生成器函式的呼叫Python函式
- JavaScript非同步程式設計–Generator函式、async、awaitJavaScript非同步程式設計函式AI
- ES6的Generator函式(2018-06-21)函式
- 【ES6基礎】生成器(Generator)
- 一步一步理解Generator函式的原理函式
- mybatis-generator-程式碼自動生成器MyBatis
- php生成器函式與yield關鍵字PHP函式
- Generator與Promise的完美結合 -- async await函式誕生記PromiseAI函式
- 記錄生成器函式的一個應用函式
- python極簡教程05:生成器和匿名函式Python函式
- 迭代器,生成器(generator)和Promise的“微妙”關係Promise
- 【Python培訓基礎知識】Python生成器函式Python函式
- 一種新的流:為 Java 加入生成器(Generator)特性Java
- 聯合迭代器與生成器,enumerate() 內建函式真香!函式
- Flutter非同步程式設計-sync*和async*生成器函式Flutter非同步程式設計函式
- 6-4 jmu-python-函式-圓形生成器 (10分)Python函式
- es6 快速入門 系列 —— 迭代器 (Iterator) 和 生成器 (Generator)