Сожалею. Я смущен тем, что является обязательным в Rxswift. Насколько я знаю, observable не будут давать значение, если наблюдатель не подписался на него, например myObservable.subscribe(onNext: {}).
Но когда я прочитал следующую строку кода:
// in LoginViewModel.swift
init() {
isValid = Observable.combineLatest(username.asObservable(), password.asObservable()) { (username, password) in
return !username.isEmpty && !password.isEmpty
}
}
// in LoginViewController.swift
viewModel.isValid.bind(to: loginButton.rx.isEnabled).disposed(by: disposeBag)
Я запутался здесь, почему наблюдаемый isValid Observable можно наблюдать без вызова метода subscribe на него?
Почему мы можем просто вызвать bind (to :) в LoginViewController.swift не вызывая что-то вроде viewModel.isValid.subscribe(...)