node --- 模拟事件的异步
生活随笔
收集整理的這篇文章主要介紹了
node --- 模拟事件的异步
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
事件
- 在前端瀏覽器最常見的就是頁面交互事件
- 本質是發布/訂閱設計模式
目標
- 對象使用add方法訂閱事件。
- 使用emit發布消息
訂閱事件
- 添加觸發事件的一個唯一字符串,以及對應的處理函數
- 先初始化事件對象
- 訂閱
- 在訂閱事件的時候,需要先判斷事件是否存在.
- 若不存在,則直接加入到隊列(數組)
- 若存在,則放到隊尾(push進入)
發布事件
- 當使用emit方法是,傳入的第一個參數是事件的名稱.
- emit方法會根據傳入的名稱,找到對應的事件處理組.
- 利用事件處理組對后面的參數進行依次調用
調用
const e = new Event(); e.add('sayHello', (err, name) =>{if(err) {console.error(err);return}console.log(`hello ${name}`);return }) e.emit('sayHello','發生了錯誤'); e.emit('sayHello', null, 'marron');鏈式調用的實現
- 想使用如下的方式進行調用
- 只需保證調用add后的執行還是當前的實例(e)即可
- 在類Event的內部,this指向的是當前的實例,因此只需在add方法中返回this即可實現
- 改寫Event,注意return 語句
總結
以上是生活随笔為你收集整理的node --- 模拟事件的异步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: koa --- [MVC实现之五]Mo
- 下一篇: 西南科技大学OJ题 带权无向图存储判定