觀察者是 Observable 傳遞的值的消費者。它是一組回調,用於 Observable 傳遞的每種類型的通知:next、error、complete。
const observer = {
next: (x) => console.log('觀察者獲得值:' + x),
error: (err) => console.error('觀察者獲得錯誤:' + err),
complete: () => console.log('觀察者獲得完成通知'),
};
要使用觀察者,請將其提供給 Observable 的 subscribe:
observable.subscribe(observer);
觀察者只是具有三個回調的對象,一個用於 Observable 可能傳遞的每種類型的通知。
RxJS 中的觀察者也可能是部分的。如果你不提供其中一個回調,Observable 的執行仍然會正常進行,除了某些類型的通知將被忽略,因為它們在觀察者中沒有對應的回調。
下面是沒有提供 complete 回調的觀察者:
const observer = {
next: (x) => console.log('觀察者獲得值:' + x),
error: (err) => console.error('觀察者獲得錯誤:' + err),
}
訂閱 Observable 時,也可以只提供下一個回調作為參數,而不附加到 observer 對象,例如:
observable.subscribe(x => console.log('觀察者獲得值:' + x));
在 observable.subscribe
內部,它將使用回調參數創建一個 Observer 對象作為 next 處理程序。