摘要:背景最近遇到個(gè)面試題點(diǎn)亮綠燈,然后點(diǎn)亮黃燈,然后點(diǎn)亮紅燈,然后重復(fù)循環(huán)。估計(jì)是考察相關(guān)內(nèi)容。那如何更好的實(shí)現(xiàn)呢實(shí)現(xiàn)啟動(dòng)改進(jìn)函數(shù)的貌似寫復(fù)雜了,函數(shù)本身返回的就是個(gè)對象,那給方法傳遞的箭頭函數(shù)冗余了。
背景
最近遇到個(gè)面試題:點(diǎn)亮綠燈3s,然后點(diǎn)亮黃燈1s,然后點(diǎn)亮紅燈2s,然后重復(fù)循環(huán)。估計(jì)是考察ES6 Promise相關(guān)內(nèi)容。那如何更好的實(shí)現(xiàn)呢?
Promise實(shí)現(xiàn)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()) } // 啟動(dòng) step();改進(jìn)
step函數(shù)的貌似寫復(fù)雜了,yellowPromise函數(shù)本身返回的就是個(gè)Promise對象,那給then方法傳遞的箭頭函數(shù)冗余了。修改step函數(shù):
function step() { greenPromise().then(yellowPromise).then(redPromise).then(step) } //啟動(dòng) step();再改進(jìn)
使用async/wait改進(jìn)下step函數(shù):
async function step() { await greenPromise(); await yellowPromise(); await redPromise(); step(); } // 啟動(dòng) step();不止這些...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/98966.html
摘要:在每個(gè)事件上,觸發(fā)器都可以決定觸發(fā)即清除刪除窗口并丟棄其內(nèi)容,或者啟動(dòng)并清除窗口。請注意,指定的觸發(fā)器不會(huì)添加其他觸發(fā)條件,但會(huì)替換當(dāng)前觸發(fā)器。結(jié)論對于現(xiàn)代流處理器來說,支持連續(xù)數(shù)據(jù)流上的各種類型的窗口是必不可少的。 showImg(https://segmentfault.com/img/remote/1460000017892799?w=1280&h=720); 前言 目前有許多數(shù)...
摘要:前言在上一篇文章中多線程奇幻之旅算法實(shí)現(xiàn)線程安全,我們介紹了和方式實(shí)現(xiàn)線程安全類的方法,兩種方式一個(gè)是鎖定阻塞方式,一個(gè)是非阻塞方式。 前言 在上一篇文章中《Java多線程奇幻之旅——CAS算法實(shí)現(xiàn)線程安全》,我們介紹了Synchronized和CAS方式實(shí)現(xiàn)線程安全類的方法,兩種方式一個(gè)是鎖定阻塞方式,一個(gè)是非阻塞方式。本文專注于兩種實(shí)現(xiàn)方式效率問題。本文是上篇文章的延續(xù),會(huì)借用到上...
摘要:有限狀態(tài)機(jī)可以歸納出四個(gè)要素現(xiàn)態(tài)即當(dāng)前的狀態(tài)。但狀態(tài)模式還有一點(diǎn)需要注意到,當(dāng)采用子類繼承實(shí)現(xiàn)多種具體狀態(tài)的時(shí)候,注意控制狀態(tài)的數(shù)量,以免出現(xiàn)子類數(shù)量膨脹的現(xiàn)象在使用或等更完整面向?qū)ο笳Z言時(shí)。 業(yè)務(wù)代碼開發(fā)久了,偶爾看看設(shè)計(jì)模式,總會(huì)讓自己有一種清新脫俗的感覺??傁氚堰@種感覺記下來,但一想到要先起個(gè)恰如其分的標(biāo)題和開頭,就讓我有一種百爪撓心的糾結(jié),所以遲遲沒有開始。今天起更新我學(xué)習(xí)設(shè)計(jì)...
摘要:本實(shí)現(xiàn)來自重學(xué)前端第節(jié)執(zhí)行一里的代碼為什么比先執(zhí)行中的最后的問題,使用實(shí)現(xiàn)一個(gè)紅綠燈效果。打開電源紅綠燈開始工作啟動(dòng)紅綠燈延時(shí)的包裝同步函數(shù)包裝業(yè)務(wù)目標(biāo)綠色黃色紅色啟動(dòng)隊(duì)列循環(huán)隊(duì)列執(zhí)行綠燈三秒黃燈一秒紅燈倆秒 本實(shí)現(xiàn)來自 winter《重學(xué)前端》第16節(jié) JavaScript執(zhí)行(一): Promise里的代碼為什么比setTimeout先執(zhí)行?中的最后的問題,使用實(shí)現(xiàn)一個(gè)紅綠燈效果。...
閱讀 3451·2023-04-25 19:39
閱讀 3799·2021-11-18 13:12
閱讀 3634·2021-09-22 15:45
閱讀 2433·2021-09-22 15:32
閱讀 716·2021-09-04 16:40
閱讀 3727·2019-08-30 14:11
閱讀 1883·2019-08-30 13:46
閱讀 1563·2019-08-29 15:43