советуют использовать при подписке takeUntil или takeWhile. С takeUntil все понятно, надо создать сабдект и при дестрое сделать в него next() и еще отписаться от него сразу. По мне вроде как проще выглядит takeWhile. Тут опять же советуют сделать что-то типа private alive: boolean = true и в OnDestroy делать this.alive=false. А я вот подумал, что если делать совсем просто - при подписке делать takeWhile(!!this) . Сработает ли такой костыль?
Разница между takeUntil и takeWhile в том, что в первом случае подписка отменяется сразу же, а во втором дожидается нового эмита. Соотвественно в ряде случаев takeWhile может быть поддвержен утечкам памяти.
Обсуждают сегодня