rxjs运算符不使用angular2

时间:2016-12-05 12:45:26

标签: angular rxjs

我在我的角度应用程序中注意到rxjs运算符(如switchMapmap等)无效。 (我的IDE也给出了一个提示。)可以肯定的是,我运行了以下代码。如果我将switchMap替换为subscribe,我会看到'值已返回'在控制台中。

知道操作员为什么不工作?

import { Component, OnInit } from '@angular/core';
import {Observable} from "rxjs/Observable";
import 'rxjs/add/operator/switchMap';

@Component({
    selector: 'page-2',
    template: `
    <h2>{{title}}</h2>
    `,
})
export class Page2Component implements OnInit{
    title = 'Page2';

    ngOnInit() {
        let obs = new Observable(observable  => {
            observable.next('value returned');
        });
        obs.switchMap(console.log);
    }
}

1 个答案:

答案 0 :(得分:2)

为了&#34;火&#34;一个可观察的,你需要订阅它。否则他们将会感到寒冷&#34;。

  

Subscribe运算符是将观察者连接到Observable的粘合剂。为了让观察者能够看到Observable发出的项目,或者从Observable接收错误或完成的通知,它必须首先使用此运算符订阅该Observable。

     

如果Observable在观察者订阅之前没有开始发射物品,则称其为“冷”Observable;如果Observable可以在任何时间开始发出物品,则它被称为“热”Observable,并且订户可以在其开始之后的某个时刻开始观察所发射物品的序列,从而错过了在订阅之前发射的任何物品。

参考:http://reactivex.io/documentation/operators/subscribe.html