ECMAScript -23 生成器 Generator
- 提供更好的异步编程解决方案
function* foo() {
console.info('tom')
return 100
}
const result = foo() // Object [Generator] {}
console.info(result.next())
/**
* 执行结果
* tom
* { value: 100, done: true } 🚀生成器函数也实现了Iterator接口
*/
function* foo() {
console.info('11111')
yield 100
console.info('22222')
yield 200
console.info('33333')
yield 300
}
/**
* 生成器函数自动返回一个生成器对象,调用next才执行函数体,
* 遇到yield就暂停执行,同时yield后面的作为返回数据
*/
const generator = foo()
console.info(generator.next()) // >>> { value: 100, done: false }
console.info(generator.next()) // >>> { value: 200, done: false }
console.info(generator.next()) // >>> { value: 300, done: false }
console.info(generator.next()) // >>> { value: undefined, done: true }
// 惰性执行,踢一脚,动一动😭
Keep learning

浙公网安备 33010602011771号