我注意到在我的角度应用程序中,rxjs运算符(如switchMap
,map
等)无法正常工作。 (我的IDE也给出了一个提示。)可以肯定,我运行了下面的代码。如果我用subscribe
替换switchMap
,我确实在控制台中看到'返回值'。rxjs运算符不能与angular2一起工作
任何想法为什么运营商不工作?
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);
}
}
你不一定需要调用'subscribe'发出值,当你调用任何类似'switchMap'运营商。 http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-switchMap – Naveed
@Naveed正如我在我的答案中所说,如果你不订阅可观察的,它将保持冷静,它不会与观察员有联系。因此,你将无法“观察”任何东西。检查您提供的链接中的示例。我承认在文档中使用emit是有点令人困惑,但'switchMap'只是将这些值映射/发射到observables,但如果这些observables没有观察者,则无法看到/观察任何东西。 – echonax
好的。我明白了。 'switchMap'和'map'返回我需要订阅的另一个observable。 – Naveed