Generator函数
generator和普通函数不同的是,generator由function定义(注意多出的号),并且,除了return语句,还可以用yield返回多次
//1.Generator函数
//声明*
function* myGenerator() {
//碰到yield就停止
let res = yield req(1);
let res2 = yield req(res);
let res3 = yield req(res2);
req(res3);
return "结束"
}
//模拟异步函数
function req(value) {
setTimeout(() => {
console.log('请求执行完成', value)
//模拟返回结果
let res = value + 1;
//执行下一步
//并且把参数传递给yield
pornt.next(res);
}, 2000)
}
//调用Generator函数不是马上开始执行
//返回一个执行指针
let pornt = myGenerator();
//执行
let por = pornt.next();