小程序開發(fā)中如何使用事件監(jiān)聽器

這篇文章給大家分享的是有關(guān)小程序開發(fā)中如何使用事件監(jiān)聽器的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護、網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)站備案、服務(wù)器租用、域名申請、軟件開發(fā)、小程序定制開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站聯(lián)系電話:18980820575

事件監(jiān)聽在開發(fā)中經(jīng)常會用到,在編程語言中,監(jiān)聽器是一個專門用于對其他對象身上發(fā)生的事件或狀態(tài)改變進行監(jiān)聽和相應(yīng)處理的對象,當被監(jiān)視的對象發(fā)生情況時,立即采取相應(yīng)的行動。監(jiān)聽器的特點是被動觸發(fā),而且觸發(fā)事件執(zhí)行是即時的。小程序開發(fā)中也有這樣一個處理事件機制,Node.js所有的異步 I/O 操作在完成時都會發(fā)送一個事件到事件隊列。Node.js里面的許多對象都會分發(fā)事件:一個net.Server對象會在每次有新連接時分發(fā)一個事件,一個fs.readStream對象會在文件被打開的時候發(fā)出一個事件。所有這些產(chǎn)生事件的對象都是 events.EventEmitter 的實例。那么如何在小程序制作中使用事件監(jiān)聽器?

events 模塊只提供了一個對象: events.EventEmitter

EventEmitter的核心就是事件觸發(fā)與事件監(jiān)聽器功能的封裝。

EventEmitter的每個事件由一個事件名和若干個參數(shù)組成,事件名是一個字符串,通常表達一定的語義。對于每個事件,EventEmitter 支持 若干個事件監(jiān)聽器。

當事件觸發(fā)時,注冊到這個事件的事件監(jiān)聽器被依次調(diào)用,事件參數(shù)作為回調(diào)函數(shù)參數(shù)傳遞。

//event.js 文件
var events =require(\'events\');
var emitter= new events.EventEmitter();
emitter.on(\'someEvent\',function(arg1, arg2) {
console.log(\'listener1\', arg1, arg2);
});
emitter.on(\'someEvent\',function(arg1, arg2) {
console.log(\'listener2\', arg1, arg2);
});
emitter.emit(\'someEvent\',\'arg1 參數(shù)\', \'arg2 參數(shù)\');

addListener(event,listener) 為指定事件添加一個監(jiān)聽器到監(jiān)聽器數(shù)組的尾部。

on(event,listener) 為指定事件注冊一個監(jiān)聽器,接受一個字符串 event 和一個回調(diào)函數(shù)。

once(event,listener) 為指定事件注冊一個單次監(jiān)聽器,即 監(jiān)聽器最多只會觸發(fā)一次,觸發(fā)后立刻解除該監(jiān)聽器。

小程序開發(fā)中如何使用事件監(jiān)聽器

removeListener(event,listener) 移除指定事件的某個監(jiān)聽器,監(jiān)聽器必須是該事件已經(jīng)注冊過的監(jiān)聽器。

它接受兩個參數(shù),第一個是事件名稱,第二個是回調(diào)函數(shù)名稱。

removeAllListeners([event])移除所有事件的所有監(jiān)聽器, 如果指定事件,則移除指定事件的所有監(jiān)聽器。

setMaxListeners(n)默認情況下, EventEmitters 如果你添加的監(jiān)聽器超過 10 個就會輸出警告信息。 setMaxListeners 函數(shù)用于提高監(jiān)聽器的默認限制的數(shù)量。

listeners(event)返回指定事件的監(jiān)聽器數(shù)組。

emit(event,[arg1], [arg2], […]) 按參數(shù)的順序執(zhí)行每個監(jiān)聽器,如果事件有注冊監(jiān)聽返回 true,否則返回 false。

類方法中l(wèi)istenerCount(emitter,event)返回指定事件的監(jiān)聽器數(shù)量。

監(jiān)聽事件

removeListener從指定監(jiān)聽器數(shù)組中刪除一個監(jiān)聽器。需要注意的是,此操作將會改變處于被刪監(jiān)聽器之后的那些監(jiān)聽器的索引。

event - 字符串,事件名稱

listener - 處理事件函數(shù)

newListener 該事件在添加新監(jiān)聽器時被觸發(fā)。

event - 字符串,事件名稱

listener - 處理事件函數(shù)

error 它包含了錯誤的語義,我們在遇到 異常的時候通常會觸發(fā) error 事件。

當 error 被觸發(fā)時,EventEmitter 規(guī)定如果沒有響 應(yīng)的監(jiān)聽器,Node.js 會把它當作異常,退出程序并輸出錯 誤信息。我們一般要為會觸發(fā) error 事件的對象設(shè)置監(jiān)聽器,避免遇到錯誤后整個程序崩潰。

大多數(shù)時候我們不會直接使用 EventEmitter,而是在對象中繼承它。包括 fs、net、 http在內(nèi)的,只要是支持事件響應(yīng)的核心模塊都是EventEmitter的子類。這樣做的好處在于具有某個實體功能的對象實現(xiàn)事件符合語義, 事件的監(jiān)聽和發(fā)射應(yīng)該是一個對象的方法。其次js的對象機制是基于原型的,支持部分多重繼承,繼承EventEmitter不會打亂對象原有的繼承關(guān)系。

感謝各位的閱讀!關(guān)于“小程序開發(fā)中如何使用事件監(jiān)聽器”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)頁題目:小程序開發(fā)中如何使用事件監(jiān)聽器
當前路徑:http://muchs.cn/article30/pdppso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站導航、網(wǎng)站維護、、軟件開發(fā)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管