Size: a a a

Angular - русскоговорящее сообщество

2019 December 10

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
зачем тогда этот пример?
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
не надо прыгать с одного на другое. Давайте разберем первый пример
По поводу первого примера, нет гарантий, что поток действительно завершится, так как мы работаем с контрактом Observable
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
Там есть retry() поэтому complete() не происходит
В данном примере это так, в реальной жизни может быть множество других причин
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
В данном примере это так, в реальной жизни может быть множество других причин
т.е. чел обманывает и выдает это за доказательство. Это нормально?
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
это уже какая-то секта отписчиков
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
т.е. чел обманывает и выдает это за доказательство. Это нормально?
А в чем обман? В том что не отписываться от подписок небезопасно, и может приводить к проблемам с утечками памяти, различным негативным сайд эффектам и другим рандомным вещам?
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
По поводу первого примера, нет гарантий, что поток действительно завершится, так как мы работаем с контрактом Observable
гарантия есть если это обычный запрос,  без всяких повторений
источник

С

Степан in Angular - русскоговорящее сообщество
Если есть подписка, отписывайся на всякий случай
источник

С

Степан in Angular - русскоговорящее сообщество
Не так сложно написать пару строк
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
А в чем обман? В том что не отписываться от подписок небезопасно, и может приводить к проблемам с утечками памяти, различным негативным сайд эффектам и другим рандомным вещам?
Сделайте запрос внутри компонента WithoutUnsubscribeComponent и только там, без всяких перехватчиков запроса тогда это будет доказательством
источник

AP

Andrey Petrov in Angular - русскоговорящее сообщество
Андрей Ч
гарантия есть если это обычный запрос,  без всяких повторений
Простые универсальные правила лучше, чем сложные правила с кучей оговорок и особых условий. Отписываться от подписок — хорошее простое правило.
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
this.http.get('').subscribe({
   next: (_) => this.data = _,
   error: (e) => console.log(e),
   complete: () => {
       console.log('COMPLETED! ИДИ В БАНЮ!');
   }
});
вот доказательство, что отписка происходит после каждого запроса
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
гарантия есть если это обычный запрос,  без всяких повторений
Давайте вместе посмотрим, какие варианты событий у нас могут быть


Не отписываемся: предположение верное -> ничего не теряем.
Не отписываемся: предположение неверное -> получим негативный эффект.

Отписываемся: предположение верное -> ничего не теряем.
Отписываемся: предположение неверное -> ничего не теряем.


Если не отписываться, то возможна ситуация, когда мы можем забыть про какой-то нюанс или вовсе про него не знать, и получить неправильно работающее приложение (этакий на авось). Если говорить про тот же HttpClient, то в правильно спроектированном приложении мы никогда не вызовем напрямую .subscribe(), так как это будет делаться на других слоях.

Если отписываться, то мы всегда остаемся в выигрышной ситуации и получаем безопасный код, который работает по простому контракту: подписались и отписались.
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
Давайте вместе посмотрим, какие варианты событий у нас могут быть


Не отписываемся: предположение верное -> ничего не теряем.
Не отписываемся: предположение неверное -> получим негативный эффект.

Отписываемся: предположение верное -> ничего не теряем.
Отписываемся: предположение неверное -> ничего не теряем.


Если не отписываться, то возможна ситуация, когда мы можем забыть про какой-то нюанс или вовсе про него не знать, и получить неправильно работающее приложение (этакий на авось). Если говорить про тот же HttpClient, то в правильно спроектированном приложении мы никогда не вызовем напрямую .subscribe(), так как это будет делаться на других слоях.

Если отписываться, то мы всегда остаемся в выигрышной ситуации и получаем безопасный код, который работает по простому контракту: подписались и отписались.
"мы можем забыть" вот в том-то и дело. А если я ничего не забыл? Мне на собеседовании такую дичь впаривали, но доказать не смогли
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
из-за таких как вы сектантов, людей не берут на работу
источник

YS

Yuri Stepanov in Angular - русскоговорящее сообщество
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Андрей Ч
"мы можем забыть" вот в том-то и дело. А если я ничего не забыл? Мне на собеседовании такую дичь впаривали, но доказать не смогли
Вы не забыли, а ваш коллега забыл или не знал. В итоге появился баг, на который потратили 40 чел/час. Кто виноват, ваш коллега, который не знал, или вы, который был против, или просто так получилось?)
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Андрей Ч
"мы можем забыть" вот в том-то и дело. А если я ничего не забыл? Мне на собеседовании такую дичь впаривали, но доказать не смогли
а уверены что не взяли из-за этого? они дали конкретный фидбек?)
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
Вертихвост キバ
Вы не забыли, а ваш коллега забыл или не знал. В итоге появился баг, на который потратили 40 чел/час. Кто виноват, ваш коллега, который не знал, или вы, который был против, или просто так получилось?)
мой коллега может что-то забыть и в другом месте, тоже я буду виноват?
источник

АЧ

Андрей Ч in Angular - русскоговорящее сообщество
факт в том, что ваш пример не является доказательством, а является самым настоящим обманом
источник