欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用JavaScript怎么實(shí)現(xiàn)一個(gè)發(fā)布訂閱功能-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)使用JavaScript怎么實(shí)現(xiàn)一個(gè)發(fā)布訂閱功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比米東網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式米東網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋米東地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

使用場(chǎng)景


異步通信、多頁(yè)面間相互通信,pageA 的方法想在 pageB的方法調(diào)用的某個(gè)時(shí)機(jī)觸發(fā)

直接上代碼

class Publish {
 constructor() {
  this.listMap = {};
 }
	// 訂閱
 on(key, fn) {
  this.listMap[key]
   ? this.listMap[key].push(fn)
   : this.listMap[key] = [fn];
   
		// 存儲(chǔ)訂閱fn的下標(biāo)
  const index = this.listMap[key].length - 1;
  
		// 返回取消訂閱的function
  return () => this.clear(key, index);
 }
 
	// 取消所有該key訂閱
 off(key) {
  delete this.listMap[key];
 }
 
	// 取消key的指定的某個(gè)訂閱
 clear(key, index) {
  index === this.listMap[key].length - 1
   ? this.listMap[key].pop()
   : this.listMap[key][index] = null;
 }
 
	//訂閱一次觸發(fā)后自動(dòng)取消訂閱
 once(key, fn) {
  this.on(key, (...rest) => {
   fn(...rest);
   this.off(key);
  });
 }

	// 發(fā)布key
 trigger(key, ...rest) {
 	if(key in this.listMap) {
	 	this.listMap[key].forEach(fn => {
	   fn(...rest);
	  });
 	}
 }
}

使用方法

const ob = new Publish();

// 訂閱 sub1
const sub1 = ob.on('sub1', (a, b) => {
 console.log('sub1', a, b);
});

// 訂閱 sub1
const sub11 = ob.on('sub1', (a, b) => {
 console.log('sub11', a, b);
});

ob.trigger('sub1', 2, 3);

// 取消訂閱sub1
sub1();

// 取消訂閱sub11
sub11();

// 訂閱 sub3
ob.on('sub3', (a, b) => {
 console.log('sub3', a, b);
});

// 訂閱 sub3
ob.on('sub3', (a, b) => {
 console.log('sub33', a, b);
});

ob.trigger('sub3', 6, 7);

// 取消訂閱所有的sub3
ob.off('sub3');

// 訂閱一次就自行取消訂閱
ob.once('sub4', (a, b) => {
 console.log('sub4', a, b);
});

ob.trigger('sub4', 8, 9);

看完上述內(nèi)容,你們對(duì)使用JavaScript怎么實(shí)現(xiàn)一個(gè)發(fā)布訂閱功能有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)站名稱:使用JavaScript怎么實(shí)現(xiàn)一個(gè)發(fā)布訂閱功能-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://aaarwkj.com/article46/coceeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、服務(wù)器托管網(wǎng)站建設(shè)、定制開發(fā)網(wǎng)頁(yè)設(shè)計(jì)公司、手機(jī)網(wǎng)站建設(shè)

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
国产成人亚洲一区二区三区| 未满十八在线观看网址| 欧美日韩综合在线第一页| 日韩欧美国产精品福利| 好吊视频在线免费观看| 欧美激情网页一区三区| 91免费福利激情视频| 99久久伊人精品综合观看| 国产乱av一区二区三区| 成人爱爱免费观看视频| 亚洲高清无毛一区二区| 日本一二不卡高清在线视频 | 国产在线观看国产精品| 国产精品日韩一区视频| 国产精品欧美一区二区视频 | 日本成人午夜在线观看| 国产又猛又黄又爽无遮挡| 国产高清亚洲精品视频| 91大片在线观看视频| 国产自愉怕一区二区三区| 亚洲精品一区二区三区中文字幕| 国产av剧情在线免费观看| 国产精品18禁一区二区三区| 精品国产综合一区二区三区| 九九视频666免费| 五月婷婷六月丁香俺来也| 夜夜春国产精品不卡一区二区| 国产丝袜美女一区二区| 国产一边打电话一边操| 日韩中文字幕在线有码| 青青草原精品视频在线| 丰满的少妇一区二区三区免费观看| 人妖伪娘在线观看一区二区三区| 午夜福利视频欧美成人| 亚洲中国av一区二区| 天堂av在线资源观看| 亚洲男人天堂在线播放| 在线免费观看日本91| 亚洲大尺码在线视频香蕉| 黄色三级视频久久久| 日韩精品在线免费观看了|