Андрей Ч. @Andchir
PHP/Python/JS Full Stack Developer
Information
- Rating
- 2,745-th
- Location
- Карелия, Россия
- Date of birth
- Registered
- Activity
Specialization
Frontend Developer, Fullstack Developer
Middle
From 200,000 ₽
Python
JavaScript
Angular
PHP
Django
Linux
SQL
MongoDB
Первый ответ от одного из активных участников команды разработки Angular и NgRx Роба Уормолда:
Вопрос:
Ответ:
Мой перевод:
Второй ответ от разработчика RxJS Бена Леша:
Мой перевод:
В телеграм чате я обещал человеку под ником Reactive Fox, что если он найдет рекомендацию исполнения контракта «отписался — отпишись» от самого разработчика RxJS, то я принесу ему публичные извинения.
Прошу прощения. Я был не прав, когда говорил, что такой рекомендации в RxJs Нет.
Только плохо, что такой рекомендации нет в документации RxJS.
На самом деле там всё просто, это же просто JavaScript функции, которые могут быть синхронными и асинхронными. Отписываться от синхронных бессмысленно. Вы же не вызываете «removeEventListener» после того как отфильтровали массив? Там точно такая же логика. Загляните в исходники хотя бы один раз и всё станет понятно.
Это из документации (что происходит при отписке в бесконечном потоке — для понятности переписано):
А это из исходников, как создается подписка на событие HTML-элемента (сразу создается функция отписки):
В случае асинхронных, конкретно запрос в HttpClient можно в некоторых случаях считать исключением из правил, потому, что поток завершается автоматически. Мне никакие проверки не нужны, проверку я привел для сомневающихся.
Это феноминально. Я пишу «я не предлагаю...», а он мне совсем обратный смысл. Я считаю, что в некоторых случая это вполне нормальное решение. А если вы будете и это за меня решать, то может будете за меня писать код?
Ещё раз. Читаем то, что выделено жирным. Но с вами диалог я заканчиваю. Мы ходим по кругу. Отвечать больше не буду.
Это был только пример того, что отписываться нужно не всегда. Я там несколько раз сделал оговорку, что не предлагаю так делать везде и всегда и «на всякий случай».
Что вы пристали к этим отпискам? Разве статья называется «не отписывайтесь»? Нет. Не это главное.
Но в отличии от вас, я никого не запугиваю, давая ложную (непроверенную) информацию, я ничего не утаиваю и не говорю, что моему примеру нужно следовать всегда.
github.com/andchir/test-angular-app/blob/master/my-app/src/app/components/good-modal/good-modal.component.ts#L31
Я открыл, проверил и оказалось, что ваши размышления не имеют ничего общего с реальностью. Подробности есть в статье.
Тут я вам не помощник, потому что по моему мнению вы пытаетесь доказать то, чего нет. Точнее называете утечкой то, что ей не является.
Приведите конкретный пример. Можно даже из реального проекта. Не надо заставлять читателя поверить вам на слово или придумывать пример самостоятельно. Хватит пустословия! Больше конкретики. Покажите код, где ваша методика предугадывания проблем пригодилась.
Прошу прощения, если что-то пропустил. Позже проверю, пока нет времени.
habr.com/ru/post/479732/#comment_21006040
«Или еще вариант, наш поток порожден из какой-то другой подписки...» — читаем про SOLID.