我是angular2的新手,目前,我正在开发一个使用@ngrx / store和subscribe类的项目。订阅商店工作时,我对地图方法的方法感到困惑。请帮我理解何时使用map和subscribe方法。代码如下。
this.store.select('rating').subscribe(({ topPicks }) => { // code is working });
this.store.select('rating').map(({ topPicks }) => // not working);
答案 0 :(得分:0)
据我所知,这里this.store.select('rating')
是一个Observable。取决于observable是Hot还是Cold,(更多信息请参阅此blog)observable将开始发出值。在您的情况下,第一个语句有效,因为您订阅了observable。 Map
只是一个运算符,您可以将它用于observable发出的值(它不作为订阅者)。
第二个语句不起作用,因为Observable没有订阅者。要使用地图运算符,您可以执行以下操作:
this.store.select('rating').map(/* Do whatever you want to with the emitted values here */).subscribe(({ topPicks }) => {});
要了解有关运营商的更多信息,您可以查看documentation。