迭代器函数的定义 迭代器中需要返回一个对象这个对象中需要有一个 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);
// })
// })
// })