摘要:背景最近遇到個面試題點亮綠燈,然后點亮黃燈,然后點亮紅燈,然后重復循環。估計是考察相關內容。那如何更好的實現呢實現啟動改進函數的貌似寫復雜了,函數本身返回的就是個對象,那給方法傳遞的箭頭函數冗余了。
背景
最近遇到個面試題:點亮綠燈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
摘要:在每個事件上,觸發器都可以決定觸發即清除刪除窗口并丟棄其內容,或者啟動并清除窗口。請注意,指定的觸發器不會添加其他觸發條件,但會替換當前觸發器。結論對于現代流處理器來說,支持連續數據流上的各種類型的窗口是必不可少的。 showImg(https://segmentfault.com/img/remote/1460000017892799?w=1280&h=720); 前言 目前有許多數...
摘要:前言在上一篇文章中多線程奇幻之旅算法實現線程安全,我們介紹了和方式實現線程安全類的方法,兩種方式一個是鎖定阻塞方式,一個是非阻塞方式。 前言 在上一篇文章中《Java多線程奇幻之旅——CAS算法實現線程安全》,我們介紹了Synchronized和CAS方式實現線程安全類的方法,兩種方式一個是鎖定阻塞方式,一個是非阻塞方式。本文專注于兩種實現方式效率問題。本文是上篇文章的延續,會借用到上...
摘要:有限狀態機可以歸納出四個要素現態即當前的狀態。但狀態模式還有一點需要注意到,當采用子類繼承實現多種具體狀態的時候,注意控制狀態的數量,以免出現子類數量膨脹的現象在使用或等更完整面向對象語言時。 業務代碼開發久了,偶爾看看設計模式,總會讓自己有一種清新脫俗的感覺。總想把這種感覺記下來,但一想到要先起個恰如其分的標題和開頭,就讓我有一種百爪撓心的糾結,所以遲遲沒有開始。今天起更新我學習設計...
閱讀 3461·2023-04-25 19:39
閱讀 3814·2021-11-18 13:12
閱讀 3641·2021-09-22 15:45
閱讀 2439·2021-09-22 15:32
閱讀 724·2021-09-04 16:40
閱讀 3734·2019-08-30 14:11
閱讀 1892·2019-08-30 13:46
閱讀 1569·2019-08-29 15:43