JS面試異步模擬紅綠燈實現(xiàn)詳解
引言
異步的問題是程序員繞不開的話題,無論在實際開發(fā)上還是在面試中,我們總會遇到各種頭疼的問題,但是細細品味,其實這些問題總能拓展我們的思路,激發(fā)我們的思維能力。培養(yǎng)我們的高情商能力。
(我,我編不下去了)紅綠燈模擬在異步問題上是經典中的經典,網絡上的設計也是層出不窮,我將給大家呈現(xiàn)一款比較獨特的設計。
問題拆解
紅綠燈在我們日常生活是常見的,因此對于問題大家是容易理解的,我們此次需要考慮如何模擬紅綠燈的無間斷切換和輪詢過程。
首先分析,我們可以通過while循環(huán)讓紅綠燈不間斷循環(huán),接住我們使用for await語法可以讓紅綠燈異步切換成同步的改變。
代碼設計
//模擬異步請求資源
function loadSource (target) {
return new Promise((resolve,reject)=>{
setTimeout(() => {
resolve(target.color)
}, target.delay);
})
}
//核心的紅綠燈邏輯
async function lightTransform (lights) {
while(true) {
for(let i=0;i<lights.length;i++) {
let res = await loadSource(lights[i])
console.log(res)
}
}
}
//數(shù)據(jù)封裝式的調用
lightTransform([
{color:"red",delay:1000},
{color:"green",delay:2000},
{color:"yellow",delay:3000}
])效果演示

核心講解
其實整體的設計還是比較簡單,我這里使用了數(shù)組對象對紅綠燈進行了數(shù)據(jù)封裝,為了模擬紅綠燈的不間斷轉換使用while循環(huán),內部為了讓彼此進行循序漸進的交替變化,將異步的方式轉換為同步代碼塊,此次使用的方法就是for await 完成的。
以上就是JS面試異步模擬紅綠燈實現(xiàn)詳解的詳細內容,更多關于JS面試異步模擬紅綠燈的資料請關注腳本之家其它相關文章!
相關文章
微信小程序 循環(huán)及嵌套循環(huán)的使用總結
這篇文章主要介紹了微信小程序 循環(huán)及嵌套循環(huán)的使用總結的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
Vue.js React與Angular流行前端框架優(yōu)勢對比
這篇文章主要為大家介紹了Vue.js React與Angular流行前端框架優(yōu)勢對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
package.json中browser?module?main字段優(yōu)先級對比
這篇文章主要介紹了package.json中browser?module?main字段的優(yōu)先級詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

