亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

满城县| 通河县| 交城县| 利川市| 固始县| 额尔古纳市| 鄂托克前旗| 镇赉县| 潜山县| 涞源县| 林州市| 萨嘎县| 临澧县| 平利县| 辽宁省| 湘潭市| 噶尔县| 荥经县| 读书| 关岭| 凉城县| 巢湖市| 朝阳市| 榆树市| 奎屯市| 德安县| 华容县| 汝城县| 慈溪市| 连城县| 富阳市| 通化县| 老河口市| 平安县| 沛县| 洛扎县| 广汉市| 攀枝花市| 六安市| 蓝田县| 渭源县|