es6 Generator函数的使用

function* foo(){
    
    
    yield 1;
    yield 2;
    yield 3;
}
var f = foo();
console.log(f.next());//{ value: 1, done: false }
console.log(f.return("foo"));//

function* callee() {
    
    
    console.log('callee: ' + (yield));
}
function* caller() {
    
    
    while (true) {
    
    
        yield* callee();
    }
}
const callerObj = caller();
console.log(callerObj.next());

function* objectEntries(obj) {
    
    
    const propKeys = Reflect.ownKeys(obj);
    for (const propKey of propKeys) {
    
    
        yield [propKey, obj[propKey]];
    }
}
 
const jane = {
    
     first: 'Jane', last: 'Doe' };
 
for (const [key,value] of objectEntries(jane)) {
    
    
    console.log(`${
      
      key}: ${
      
      value}`);
}

打印结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45932157/article/details/124349811