91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js事件的示例分析

發布時間:2021-11-22 09:22:16 來源:億速云 閱讀:108 作者:小新 欄目:web開發

這篇文章主要為大家展示了“Node.js事件的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Node.js事件的示例分析”這篇文章吧。

快速概覽

要訪問此模塊,只需使用如下語句:

require(‘events’)

requires(‘events’).EventEmitter

特別說明,node中所有能觸發事件的對象基本上都是后者的實例。讓我們創建一個簡單的演示程序Dummy:

dummy.js

// basic imports  var events = require('events');   // for us to do a require later  module.exports = Dummy;   function Dummy() {      events.EventEmitter.call(this);  }   // inherit events.EventEmitter  Dummy.super_ = events.EventEmitter;  Dummy.prototype = Object.create(events.EventEmitter.prototype, {      constructor: {          value: Dummy,          enumerable: false     }  });

上述代碼中重點展示如何使用EventEmitter擴充對象,并從中繼承所有的原型對象,方法…等等。

現在,我們假設Dummy有一個cooking()的方法,一旦把食物做熟之后它會觸發’cooked’事件,并調用一個名為’eat’的回調函數。

dummy-cooking.js

Dummy.prototype.cooking = function(chicken) {      var self = this;      self.chicken = chicken;      self.cook = cook(); // assume dummy function that'll do the cooking      self.cook(chicken, function(cooked_chicken) {          self.chicken = cooked_chicken;          self.emit('cooked', self.chicken);      });       return self;  }

現在,這個模塊已經完成了。我們可以在主程序中使用它。

dummy-node.js

// A nonsensical node.js program   var Dummy = require('./dummy');  var kenny = new Dummy();  var dinner = kenny.cooking(fried_chix);  dinner.on('cooked', function(chicken) {      // eat up!  }>

所以基本上,node.js執行腳本,然后等待’cooked’事件被觸發,并在事件觸發之后調用回調函數并傳遞返回的參數。

還有什么要注意的

值得注意的是,例子中使用的“子類”和事件有一些極端(a bit of an overkill)。EventEmitter每次只觸發一個事件(EventEmitter for things that only fire one event once)。如果只創造少數幾個實例,可以將方法直接加入到實例本身,如果要觸發底層事件,可能實用異步函數會更好一些。

關于events.EventEmitter,你還需注意一個特別的事件:’error’。任何錯誤發生時此事件都會觸發,并且當沒有監聽程序監聽這個事件時,node將會拋出異常并結束應用程序。(感謝Tim指出這一點)

以上是“Node.js事件的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濮阳县| 乌什县| 镇宁| 绥阳县| 云林县| 息烽县| 仲巴县| 汉寿县| 始兴县| 汾西县| 贡山| 革吉县| 鹤山市| 郑州市| 赤城县| 漯河市| 新宾| 肥东县| 墨竹工卡县| 云浮市| 海门市| 响水县| 双辽市| 柘荣县| 芦溪县| 文水县| 保亭| 曲麻莱县| 万盛区| 砚山县| 班戈县| 醴陵市| 阜南县| 共和县| 平原县| 广灵县| 平陆县| 湖北省| 天津市| 永寿县| 克山县|