Rxjs Observable.take(1) vs Subscription.unsubscribe()
Есть ли различия между
Observable.pipe(take(1)).subscribe(...)
против
const subscription = Observable.subscribe(() => {
// Do something, then
subscription.unsubscribe()
})
Ответ 1
Подход take(1) имеет ряд преимуществ перед subscribe:
Читаемость кода (и элегантность).
Второй подход требует, чтобы вы держали и управляли дополнительными переменными.
Второй подход не вызовет полный обработчик. Это потому, что.take(1) на самом деле создает новую наблюдаемую, которая потенциально дает один элемент и завершается.
Второй подход будет работать для тривиального случая взятия одного элемента, но если вам нужно взять больше, чем 1, take(4) останется простым, в то время как второй подход станет трудным для кодирования.
Третий пункт относится к rxjs, остальные относятся к стилю кодирования.