Как и когда автоматически отписывается подписка на Observable? - PullRequest
1 голос
/ 20 января 2020

Я хочу знать, когда отписаться от подписки на Observable. И когда нет необходимости отписываться. Трудно понять концепцию подписки.

Я приведу вам пример:

this.http
    .get(
        environment.baseUrl + "/user/init",
        this.storageService.getAuthHeader(),
    )
    .subscribe(
        (user: AppUser) => {
            console.log(user.username);
            this.currentUser = user;
        },
        (err: HttpErrorResponse) => {
            log(err);
            this.router.navigateByUrl("/login");
        },
    )
    .add((teardown: TeardownLogic) => {
        // this will get called always after the User is retrieved/ subscription is unsubscribed
        console.log("Unsubscribe automatically ?");
    });

в этом вызове я получаю Наблюдаемую. Но мне говорят, что мне нужно вручную «отписаться» от каждой подписки после уничтожения компонента. Но никто не может однозначно объяснить, почему.

Также я всегда получаю рекомендацию использовать Pipes (что, я думаю, имеет смысл при работе с несколькими асинхронными вызовами, которые зависят друг от друга), но мне интересно, когда использовать это потому, что весь вызов pipe (). take (1) ... кажется случайным или похожим на обходной путь"

Я также читал документацию о Подписки Rx JS, которые не очень мне помогают, но знать, что «teardownLogi c» всегда будет применяться после .unsubscribe ()

Я также читаю Разница между методами .pipe () и .subscribe () на RX JS наблюдаемой

и

Angular / Rx Js Когда я должен отписаться от `Подписки`

, которые на самом деле не отвечают" механике "Подписки в Rx JS / Angular

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...