angular訂閱者模式

2021-10-05 22:20:53 字數 1067 閱讀 3314

流程:

1.建立noticesevice服務,內部有乙個subject時間發射器subject;

2.send(...)為傳送資料,實際就是乙個事件;

3.get(...)為獲取observable物件,但是此時沒有訂閱者,那麼就沒有訂閱者可通知;

4.a元件把noticesevice服務類新增進來,然後在啟動的時候啟用這個send(...)事件;

5.b元件內在啟動的時候通過get(...).subscribe(...)訂閱這個send(...)事件;

6.subscribe()內部的引數是observer物件,result為event,其實是event.target.value;

7.事件流程為:a元件觸發send()-->b元件訂閱者被通知,message的值被改變。

相當於乙個事件發射器,是唯一能夠向多個observer廣播值的唯一手段。

例項:1.noticesevice服務

import  from '@angular/core';

import from "rxjs";

import from 'rxjs/observable';

@injectable()

export classs noticeservice

private subject :replaysubject=new replaysubject();

// 需要傳送的資訊

public send(message:any):void

//需要接收的資訊

public get():observable

}

2.a元件中傳送

constructor()

ngoninit())

}

3.b元件中接收

constructor()

ngoninit())

} //在接收的過程中可能會報錯,要加上定時器

this.customer.get().subscribe((res)=>)

})}

訂閱者模式(觀察者模式)

include include include struct notification virtual void process 0 class subscribera public notification class subscriberb public notification class p...

觀察者模式和訂閱者模式

1 要有個存放訂閱的事件佇列 2 通過on去訂閱事件 3 emit去觸發事件 const fs require fs node的自帶模組 const path require path const resolve file console.log resolve age.txt let evento...

觀察者模式(訂閱模式)

定義物件間一種一對多的關係,使得每當乙個物件改變狀態,則所有依賴他的物件都會得到通知並被自動更新。使用場景 1 某些時候需要一些物件有所關聯,而且這種關聯是可以拆分而不是組合在一起的。2 某一事件發生,需要向多方觸發。3 訊息交換,如訊息佇列 事件匯流排的處理機制。1 subject 抽象主題,被觀...