流程控制
function prepare(sucess){
setTimeout(function(){
console.log("prepare chicken");
sucess();
},500)
}
//炒雞
function fired(sucess){
setTimeout(function(){
console.log("fired chicken");
sucess();
},500)
}
//燉雞
function stewed(sucess){
setTimeout(function(){
console.log("stewed chicken");
sucess();
},500)
}
//上料
function sdd(sucess){
setTimeout(function(){
console.log("sdd chicken");
sucess();
},500)
}
//上菜
function serve(sucess){
setTimeout(function(){
console.log("serve chicken");
sucess();
},500)
}
//流程控制
function run(fn){
const gen = fn();
function next() {
const result = gen.next();
console.log(result);
if (result.done) return;//結束
// result.value就是yield返回的值,是各個工序的函數
result.value(next);//next做爲入參,即本工序成功後,執行下一工序
}
next();
};
//工序
function* task(){
yield prepare;
yield fired;
yield stewed;
yield sdd;
yield serve;
}
run(task);
這個博客寫的不錯,結合阮一峯大佬的入門教程比較好理解函數