亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

async/await 實現 promise 紅 綠 藍燈問題

async/await 實現 promise 紅 綠 藍燈問題

MYYA 2019-05-10 09:23:42
前言之前網上有一個promise實現紅綠藍燈交替亮的問題,我再次描述一下問題。題目:紅燈三秒亮一次,綠燈一秒亮一次,黃燈2秒亮一次;如何讓三個燈不斷交替重復亮燈?(用Promse實現)functionred(){console.log('red');}functiongreen(){console.log('green');}functionyellow(){console.log('yellow');}然后我最近學習asyncawait的時候來試著實現這個功能。但是我覺得我寫的代碼不太好,但是又不知道怎么優化,在此貼出希望有人給點建議來優化一下感謝ing!functionred(){console.log('red');}functiongreen(){console.log('green');}functionblue(){console.log('blue');}functionmiddle(cb,time,time1){returnnewPromise((resolve,reject)=>{setTimeout(()=>{cb();resolve(time1);},time);});}asyncfunctionsetp1(){constrTime=awaitmiddle(red,3000,1000);constgTime=awaitmiddle(green,rTime,2000);constbTime=awaitmiddle(blue,gTime);setp1();}setp1();
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

functionred(){
console.log('red');
}
functiongreen(){
console.log('green');
}
functionblue(){
console.log('blue');
}
functionwait(time){
returnnewPromise((resolve,reject)=>{
setTimeout(resolve,time)
})
}
asyncfunctionmarquee(){
awaitwait(3000)
red()
awaitwait(1000)
green()
awaitwait(2000)
blue()
marquee()
}
marquee()
                            
查看完整回答
反對 回復 2019-05-10
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

兩個參數就夠啦
functionred(){
console.log('red');
}
functiongreen(){
console.log('green');
}
functionblue(){
console.log('blue');
}
functionmiddle(cb,time){
returnnewPromise((resolve,reject)=>{
setTimeout(()=>{
cb();
resolve();
},time*1000);
});
}
asyncfunctionsetp1(){
constrTime=awaitmiddle(red,3);
constgTime=awaitmiddle(green,1);
constbTime=awaitmiddle(blue,2);
setp1();
}
setp1();
                            
查看完整回答
反對 回復 2019-05-10
  • 2 回答
  • 0 關注
  • 563 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號