Как и в официальных документах для create
, связанных в нижней части страницы LearnRxJs, на которую вы ссылались:
onSubscription может дополнительно возвращать либо функцию, либо объект с unsubscribe
метод.В обоих случаях функция или метод будут вызываться при отмене подписки на Observable и должны использоваться для очистки всех ресурсов.Так, например, если вы используете setTimeout
в своем настраиваемом Observable, когда кто-то отписывается, вы можете очистить запланированный тайм-аут, чтобы он не срабатывал без необходимости, и браузер (или другая среда) не тратит вычислительную мощность на событие синхронизации, котороеникто не будет слушать в любом случае.
Он также определяет функцию подписки следующим образом (выделение мое):
Функция, которая принимает наблюдателя и вызывает его *Методы 1015 *, error
и complete
, в зависимости от ситуации, и , опционально, возвращает некоторую логику для очистки ресурсов .
Цель здесь - предоставить RxJ достаточно информации длязнать, как очистить ресурсы, когда он знает, что они больше не будут вызываться.Здесь, в случаях, когда RxJs знает, что интервальный таймер не имеет значения, он может очистить таймер.Вы правы, что это не оказывает немедленного влияния на правильность - ваша функция будет возвращать то же самое в любом случае - но она дает вам возможность хорошо использовать память и сохранять очистку автономной.