W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
什么是觀察員?觀察者是觀察者傳遞的價(jià)值的消費(fèi)者。觀察者只是一組回調(diào),一個(gè)用于由所述可觀測(cè)的遞送通知每種類型:next
,error
,和 complete
。以下是典型的 Observer 對(duì)象的示例:
const observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
complete: () => console.log('Observer got a complete notification'),
};
要使用 Observer,請(qǐng)將其提供給 subscribe
Observable 的:
const observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
complete: () => console.log('Observer got a complete notification'),
};
觀察者只是具有三個(gè)回調(diào)的對(duì)象,一個(gè)針對(duì)一 個(gè) Observable 可能傳遞的每種通知類型。
在 RxJS 觀察員也可以是局部的。如果您不提供任何一種回調(diào),則 Observable 的執(zhí)行將仍然正常進(jìn)行,除了某些類型的通知將被忽略,因?yàn)樗鼈冊(cè)?Observer 中沒有相應(yīng)的回調(diào)。
下面的示例是一個(gè)沒有 complete
回調(diào)的觀察者:
const observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
};
訂閱 Observable 時(shí),您也可以只提供回調(diào)作為參數(shù),而不必附加到 Observer 對(duì)象,例如:
observable.subscribe(x => console.log('Observer got a next value: ' + x));
在內(nèi)部 observable.subscribe
,它將使用第一個(gè)回調(diào)參數(shù)作為 next
處理程序創(chuàng)建一個(gè) Observer 對(duì)象。所有三種回調(diào)類型都可以作為參數(shù)提供:
observable.subscribe(
x => console.log('Observer got a next value: ' + x),
err => console.error('Observer got an error: ' + err),
() => console.log('Observer got a complete notification')
);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: