JS非同步之巨集佇列與微佇列

2022-08-11 13:24:14 字數 1063 閱讀 8911

js 中用來儲存待執行**函式的佇列包含 2 個不同特定的列隊

js 執行時會區別這 2 個佇列

下面這個例子可以看出promise要先於settimeout執行:

settimeout(() => 

)}, 0)

settimeout(() => , 0)

promise.resolve(1).then(

value => , 0)})

promise.resolve(2).then(

value =>

)//promise onresolved1() 1

//promise onresolved2() 2

//timeout callback1()

//promise onresolved3() 3

//timeout callback2()

//timeout callback3() 1

//

3 7 4 1 2 5

/*巨集:

微: */const first = () => (new promise((resolve, reject) =>, 0)

resolve(1)

})resolve(2)

p.then((arg) =>)

}))first().then((arg) =>)

console.log(4)

//

1 7 2 3 8 4 6 5 0

settimeout(() =>, 0)

new promise((resolve, reject) =>).then(() =>).then(() =>).then(() =>)

}).then(() =>)

new promise((resolve, reject) =>).then(() =>)

js非同步函式佇列

場景 做直播,會有入場訊息,入場特效,使用者如果有坐騎,需要給他展示幾秒鐘的坐騎特效,如果幾個人同時進場,那該怎麼展示呢?這時候就會想到settimeout函式,對,思路不錯,但是,非同步函式佇列怎麼實現呢?直接上 var queue function queue.prototype wait fu...

Redis 非同步訊息佇列與延時佇列

非同步訊息佇列 說道訊息佇列,你肯定會想到kafka rabbitmq等訊息中介軟體,這些專業的訊息中介軟體提供了很多功能特性,當然他的部署使用維護都是比較麻煩的。如果你對訊息佇列沒那麼高要求,想要輕量級的,使用redis就沒錯啦。redis通過list資料結構來實現訊息佇列.主要使用到如下命令 廢...

佇列之順序佇列與迴圈佇列

一 佇列的概念 只能在表的一端進行插入操作,只能在表的另一端進行刪除操作,這種資料結構稱為 佇列。把允許插入的一端叫 隊尾 rear 允許刪除的一端叫 對頭 front 二 佇列的分類 佇列本身也是一種線性表,因而和線性表一樣也有順序和鏈式儲存結構兩種儲存方式。採用順序儲存結構實現的佇列稱為順序佇列...