У меня есть базовый компонент, который пытается получить данные из Params
. Однако я заметил, что мой код отладки часто не работает, если мне не хватает .subscribe()
. Если в этом примере было отмечено .subscribe()
, Got Params??
не будет напечатано на консоли.Угловая 2 - .http - Зачем мне нужно подписываться на .map или .switchMap для работы console.log?
this.route.params
.switchMap((params: Params) =>{
console.log("Got params??");
console.log(params);
// params['filename'])
return 'cat';
})
.subscribe(data=>{
console.log(data);
})
Подробнее Код:
import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';
import { Router, ActivatedRoute, Params } from '@angular/router';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';
export class ParsedFileComponent implements OnInit {
parsed: any;
constructor(
private http: Http,
private route: ActivatedRoute
) { }
Кажется, что код внутри .switchMap()
не не выполняется, если его подпиской на
Это по дизайну, потому что, если ничто не заботится о результате наблюдаемого, то зачем вообще запускать его? Кажется, я не могу найти сообщение об этом, но в этой статье упоминается: https://blog.thoughtram.io/angular/2016/06/16/cold-vs-hot-observables.html – Adam