我在我的rxjs应用程序中注意到,rxjs操作符,如switchMap、map等,不起作用。(我的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);
}
}发布于 2016-12-05 12:49:06
为了“触发”一个可观察到的,你需要订阅它。否则,他们将保持“冷”。
订阅运算符是将观察者连接到可观察对象的胶水。为了让观察者看到可观测到的项目,或者接收来自可观测对象的错误或已完成的通知,它必须首先订阅该可观测的操作员。 如果一个可观测对象直到一个观察员订阅了它,它才开始发射可观测的项目,则称为“冷”可观测;一个可观测的被称为“热的”可观测的,如果它可以在任何时候开始发射项目,而订户可以在它开始后的某个点开始观察发出的项目的顺序,而忽略以前发出的任何项目到订阅的时间。
参考文献:http://reactivex.io/documentation/operators/subscribe.html
https://stackoverflow.com/questions/40974596
复制相似问题