JavaScript事件發布 訂閱

2021-08-21 04:50:12 字數 625 閱讀 1535

1、發布/訂閱模式也是諸多設計模式當中的一種;

2、這種方式可以在es5下相當優雅地處理非同步操作;

3、什麼是發布/訂閱呢?我們舉個栗子:

假設fn1,fn2,fn3都可以視作乙個事件的發布者,執行它,就會發布乙個事件。這個時候,我們可以通過乙個事件的訂閱者去批量訂閱並處理這些事件,包括它們的先後順序。增加乙個訊息訂閱者的方法:

class asyncfunarr 

next ()

run ()

}

4、呼叫

//首先將fn1,fn2,fn3訂閱

const asyncfunarr = new asyncfunarr(fn1, fn2, fn3)

//fn1,fn2,fn3作為分布者分別呼叫其next()方法:

function fn1 ()

function fn2 () , 500)

}function fn3 ()

5、輸出:

// function 1

// function 2

// function 3

6、總結:

通過上述方法,可以實現很多,如非同步請求資料等。

redis發布訂閱c介面 Redis發布訂閱

適用場景 直播訊息 彈幕訊息 粉絲訂閱訊息推送 知識點1 關鍵字 publish subscribe psubscribe redis採用publish命令傳送訊息,其返回值為接收到該訊息的訂閱者的數量。redis採用subscribe命令訂閱某個頻道,其返回值包括客戶端訂閱的頻道,目前已訂閱的頻道...

javascript事件總結

onabort 影象載入被中斷 onblur 失去焦點 onclick 滑鼠單擊某個物件 onchange 使用者改變內容 ondbclick 滑鼠雙擊某個物件 onerror 當載入文件或物件時發生某個錯誤 onfocus 獲得焦點 onkeydown 鍵盤的鍵被按下 onkeypress 鍵盤的...

JavaScript事件委託

js事件處理程式 首先,為什麼要用事件委託,用一段 解釋下 如上面 如果要新增事件處理程式,我們一般做法是,給list1 list2 list3這個3個li元素分別新增事件處理程式,但是有沒有想過,如果元素很多呢,我們還是一直用這樣的方法新增嗎?當然是不可能的,這樣子,非累死程式設計師不可 這個時候...