這篇文章給大家分享的是有關(guān)小程序開發(fā)中如何使用事件監(jiān)聽器的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),寧遠企業(yè)網(wǎng)站建設(shè),寧遠品牌網(wǎng)站建設(shè),網(wǎng)站定制,寧遠網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,寧遠網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。事件監(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)聽器。

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)聽器-創(chuàng)新互聯(lián)
文章URL:http://chinadenli.net/article20/cejdjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、做網(wǎng)站、關(guān)鍵詞優(yōu)化、手機網(wǎng)站建設(shè)、自適應(yīng)網(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)
猜你還喜歡下面的內(nèi)容