Observableの使いかた

使い方だけメモ。

@Injectable()
export class Service {
  dataSource = new Subject<any>;
  dataStreams = this.dataSource.asObservable();

  getData {
    this.http.get(url)
        .subscribe((data: any) => {
          // データソースのnextに値を入れる度に
          // ストリームのsubscribeに値が流れる
          this.dataSource.next(data);
        });
  }
}
@Component({ provider: [ Service ] })
export class Component {
  data: any;

  constructor(private service: Service) {
    // データソースのnextに値が入る度に
    // ストリームからのsubscribeに値が流れる
    this.service.dataStream
        .subscribe((data: any) => {
          this.data = data;
        });
  }
}