rxjs里的Observable對象如何消費

  • 2020 年 12 月 8 日
  • AI

測試代碼:

import { of } from 'rxjs';
import { Injectable } from '@angular/core';

@Injectable()
export class JerrySandBoxService{
    name = 'Jerry';
    print(){
        const myObservable = of(1, 2, 3);

        // 創建一個觀察者對象-Observer(處理next、error、complete回調)
        const myObserver = {
         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'),
    };

        // 通過Observable的subscribe函數,觀察者去訂閱可觀察者的消息
        myObservable.subscribe(myObserver);
    }
}

調用Observable構造器,傳入的數組被subscribeToArray再包裝一層:

Observable的構造函數,接受的參數是另一個函數:

最後of返回的是一個observable對象。