国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何實現【紅綠燈】的問題

phoenixsky / 2072人閱讀

摘要:背景最近遇到個面試題點亮綠燈,然后點亮黃燈,然后點亮紅燈,然后重復循環。估計是考察相關內容。那如何更好的實現呢實現啟動改進函數的貌似寫復雜了,函數本身返回的就是個對象,那給方法傳遞的箭頭函數冗余了。

背景

最近遇到個面試題:點亮綠燈3s,然后點亮黃燈1s,然后點亮紅燈2s,然后重復循環。估計是考察ES6 Promise相關內容。那如何更好的實現呢?

Promise實現
function red () {
    console.log("red")
}

function green () {
    console.log("green")
}

function yellow() {
    console.log("yellow")
}

function genPromise(func, timeout) {
    return () => {
        func();
        return new Promise((resolve) => setTimeout(resolve, timeout))
    }
}

var redPromise = genPromise(red, 2000), 
    greenPromise = genPromise(green, 3000),
    yellowPromise = genPromise(yellow, 1000);

function step() {
    greenPromise().then(() => yellowPromise()).then(() => redPromise()).then(() => step())
}

// 啟動
step();
改進

step函數的貌似寫復雜了,yellowPromise函數本身返回的就是個Promise對象,那給then方法傳遞的箭頭函數冗余了。修改step函數:

function step() {
    greenPromise().then(yellowPromise).then(redPromise).then(step)
}
//啟動
step();
再改進

使用async/wait改進下step函數:

async function step() {
    await greenPromise();
    await yellowPromise();
    await redPromise();
    step();
}
// 啟動
step();
不止這些...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/98966.html

相關文章

  • 《從0到1學習Flink》—— 介紹Flink中Stream Windows

    摘要:在每個事件上,觸發器都可以決定觸發即清除刪除窗口并丟棄其內容,或者啟動并清除窗口。請注意,指定的觸發器不會添加其他觸發條件,但會替換當前觸發器。結論對于現代流處理器來說,支持連續數據流上的各種類型的窗口是必不可少的。 showImg(https://segmentfault.com/img/remote/1460000017892799?w=1280&h=720); 前言 目前有許多數...

    jifei 評論0 收藏0
  • Java多線程奇幻之旅——Synchronized方式和CAS方式實現線程安全性能思考

    摘要:前言在上一篇文章中多線程奇幻之旅算法實現線程安全,我們介紹了和方式實現線程安全類的方法,兩種方式一個是鎖定阻塞方式,一個是非阻塞方式。 前言 在上一篇文章中《Java多線程奇幻之旅——CAS算法實現線程安全》,我們介紹了Synchronized和CAS方式實現線程安全類的方法,兩種方式一個是鎖定阻塞方式,一個是非阻塞方式。本文專注于兩種實現方式效率問題。本文是上篇文章的延續,會借用到上...

    Chaz 評論0 收藏0
  • 前端設計模式用起來(1)狀態模式

    摘要:有限狀態機可以歸納出四個要素現態即當前的狀態。但狀態模式還有一點需要注意到,當采用子類繼承實現多種具體狀態的時候,注意控制狀態的數量,以免出現子類數量膨脹的現象在使用或等更完整面向對象語言時。 業務代碼開發久了,偶爾看看設計模式,總會讓自己有一種清新脫俗的感覺。總想把這種感覺記下來,但一想到要先起個恰如其分的標題和開頭,就讓我有一種百爪撓心的糾結,所以遲遲沒有開始。今天起更新我學習設計...

    Salamander 評論0 收藏0
  • 綠燈效果

    摘要:本實現來自重學前端第節執行一里的代碼為什么比先執行中的最后的問題,使用實現一個紅綠燈效果。打開電源紅綠燈開始工作啟動紅綠燈延時的包裝同步函數包裝業務目標綠色黃色紅色啟動隊列循環隊列執行綠燈三秒黃燈一秒紅燈倆秒 本實現來自 winter《重學前端》第16節 JavaScript執行(一): Promise里的代碼為什么比setTimeout先執行?中的最后的問題,使用實現一個紅綠燈效果。...

    olle 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<