迭代器函数的定义 迭代器中须要返回一个对象这个对象中须要有一个next方法,next方法调用后,能够返回一个对象对象中有两个参数 第一个done value迭代出的结果express
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);
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); // }) // }) // })