2016-12-26 2 views
6

Когда я знаю, что наблюдаемый обязательно будет завершен (либо с complete, либо с уведомлением error) до мой компонент/класс выходит за рамки, мне все еще нужно отказаться от подписки, чтобы предотвратить утечку памяти? Другими словами, завершена/исправлена ​​ошибка, наблюдаемая автоматически, поэтому мне не нужно беспокоиться?Нужно ли отменить подписку на наблюдаемые, завершающие/ошибки?

ответ

7

Подписывание и отмена подписки раздел Observable Contract является окончательным в отношении вашего вопроса. В нем указывается:

Когда наблюдатель выдает уведомления наблюдателям OnError или OnComplete, это завершает подписку. Наблюдателям не нужно высылать уведомление об отказе подписки для завершения подписки, которая таким образом заканчивается Наблюдаемым.

Это также упоминается в Наблюдаемые Termination раздел:

Когда Наблюдаемые выдает OnError или OnComplete уведомления своих наблюдателей, это заканчивает подписку.

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