RxSwift — .subscribe и .subscribeNext в чем разница?

В чем разница между этими двумя операторами? http://reactivex.io вообще не упоминайте .subscribeNext.


person Alexey K    schedule 02.11.2016    source источник
comment
subscribeNext() будет получать только излучаемые значения, а не индикации onComplete или onError.   -  person Bob Dalgleish    schedule 02.11.2016
comment
Большой! Большое спасибо!   -  person Alexey K    schedule 02.11.2016


Ответы (1)


В версиях RxSwift старше 3 subscribeNext(_: Value -> ()) была специализированной версией subscribe(_: Event<Value> -> ()).

subscribe(_:) будет срабатывать для каждого случая события, а именно .next(Value), .error(Error) и .completed.

subscribeNext срабатывает только для .next(Value), сначала распаковывая Value.

Начиная с RxSwift версии 3, subscribeNext теперь

func subscribe(
  onNext: ((Value) -> ())? = nil,
  onError: ((Error) -> ())? = nil,
  onCompleted: (() -> ())? = nil, 
  onDisposed: () -> () = nil
)

Значения nil по умолчанию позволяют пользователям вызывать subscribe только с обратными вызовами, которые их интересуют.

person tomahh    schedule 03.11.2016