真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

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

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

events 模塊只提供了一個(gè)對(duì)象: events.EventEmitter

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

EventEmitter的每個(gè)事件由一個(gè)事件名和若干個(gè)參數(shù)組成,事件名是一個(gè)字符串,通常表達(dá)一定的語(yǔ)義。對(duì)于每個(gè)事件,EventEmitter 支持 若干個(gè)事件監(jiān)聽(tīng)器。

當(dāng)事件觸發(fā)時(shí),注冊(cè)到這個(gè)事件的事件監(jiān)聽(tīng)器被依次調(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) 為指定事件添加一個(gè)監(jiān)聽(tīng)器到監(jiān)聽(tīng)器數(shù)組的尾部。

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

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

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

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

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

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

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

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

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

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

監(jiān)聽(tīng)事件

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

event - 字符串,事件名稱

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

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

event - 字符串,事件名稱

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

error 它包含了錯(cuò)誤的語(yǔ)義,我們?cè)谟龅?異常的時(shí)候通常會(huì)觸發(fā) error 事件。

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

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

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


分享文章:小程序開(kāi)發(fā)中如何使用事件監(jiān)聽(tīng)器
當(dāng)前URL:http://weahome.cn/article/pdppso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部