一、代碼
function timeout(){//1s的執(zhí)行任務(wù)
var start = new Date();
while(new Date() - start <= 1000){}
}
function jiedai1(){//同步接待
timeout();//點(diǎn)單任務(wù)
timeout();//做菜任務(wù)
timeout();//吃飯任務(wù)
timeout();//結(jié)賬任務(wù)
timeout();//打掃任務(wù)
console.log("接待完成");
}
jiedai1();//客人1
jiedai1();//客人2
jiedai1();//客人3
//接待完三桌客人所需時(shí)間 3 * 1000 * 5;
function jiedai2(){//異步步接待
timeout();//點(diǎn)單任務(wù)
Promise.resolve().then(timeout);//做菜任務(wù)
Promise.resolve().then(timeout);//吃飯任務(wù)
Promise.resolve().then(timeout);//結(jié)賬任務(wù)
Promise.resolve().then(timeout);//打掃任務(wù)
console.log("接待完成")
}
jiedai2();//客人1
jiedai2();//客人2
jiedai2();//客人3
//接待完三桌客人所需時(shí)間 3 * 1000 * 1;
二舵盈、解釋
1陋率、同步接待客人球化,我們接待第一個(gè)客人后,要等他點(diǎn)單瓦糟、后廚做菜筒愚、客人吃飯、結(jié)賬了收拾完衛(wèi)生才能去服務(wù)下一桌客人菩浙,這樣我們服務(wù)下一桌客人的時(shí)候已經(jīng)等很久了巢掺,客人可能已經(jīng)走了。
2劲蜻、異步接待客人陆淀,我們接待第一個(gè)客人點(diǎn)完單之后,就可以為第二個(gè)客人點(diǎn)單了先嬉,其他的任務(wù)在另一個(gè)消息隊(duì)列中等待轧苫,接待完客人,知道每桌客人都點(diǎn)什么菜了再繼續(xù)為他們上菜疫蔓、結(jié)賬含懊、打掃等一系列任務(wù),可以使每桌客人都能被及時(shí)服務(wù)衅胀。