迭代器函数的定义 迭代器中需要返回一个对象这个对象中需要有一个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);
// })
// })
// })
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。