Значение подписки в сервисном звонке: Angular 2/4

Я новичок в angular4 и пытаюсь понять концепцию наблюдаемого и подписки.

export class MyComponent implements OnInit {

    private subscription: Subscription 

    ngOnInit() {

      // case -1 -> service call 1 with subscription     

      this.subscription = this.service1.method1().subscribe(() => {});

     // case-2 -> service call 2 without subscription 

     this.service1.method2().subscribe(() => {});

    }  

Теперь много раз нам не нужно использовать эту подписку (case-2), мы можем напрямую позвонить в службу, подписавшись на нее.

Мой вопрос, когда мы должны использовать (в каком сценарии) переменную, как

private subscription: Subscription; 

Какая лучшая практика?

Любая помощь / блог / статья будут заметны.

Спасибо

2 ответа

Решение

Subscription тип имеет функцию с именем unsubscribe, Вам нужно использовать unsubscribe вручную завершить наблюдаемое (в большинстве случаев, когда это бесконечный поток). Если наблюдаемое не завершено, поток наблюдаемого не будет закрыт, и произойдет утечка памяти. Вы можете написать отписку на ngOnDestroy событие жизненного цикла и отписаться от всех наблюдаемых на компоненте уничтожения.

Что касается HTTP-запросов, они автоматически выполняются после возвращения ответа, поэтому вам не нужно использовать unsubscribe с HTTP-запросом.

Вы также можете проверить, когда отписаться в Angular.

Библиотека RxJs основана на шаблоне Observable - в этом шаблоне вы продолжаете следить за источником, который, например, изменяет или генерирует новое значение. фондовый индекс, где значения запасов постоянно меняются или продолжают посылать новые значения.

Так согласно Наблюдаемой модели

Observable - это источник, который продолжает посылать значение вашей программе, которая будет прослушивать и обрабатывать его.

Подписка - это подписка на вашу наблюдаемую, которая отправляет вам значение, и подпиской вы указываете, что ваша программа перечисляет значение, исходящее из источника, и в этом случае вы также обрабатываете поступающее значение.

Вы можете понять вещь более ясно, если вы понимаете Observable pattern,


Ответить на ваш вопрос Subscription это вам нужно, когда вы хотите управлять своим индексом самостоятельно, т.е. в своем коде.

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

Статья: Angular: Не забудьте отписаться (), чтобы помочь вам понять токен.

отписаться от источника не во избежание утечки памяти.

Другие вопросы по тегам