protocol TodoUseCase {
func add(title: String, description: String) -> Completable
}
final class CreateTodoPresenterImpl: CreateTodoPresenter {
var todoUseCase: TodoUseCase!
var bag = DisposeBag()
func setBind() {
requestCreateTodoRelay
.flatMap { [weak self] _ -> Completable in
guard let weakSelf = self else { return Completable.empty() }
return weakSelf.todoUseCase.add(title: weakSelf.titleInputtedText.value, description: weakSelf.descriptionInputtedText.value)
.debug() // debug#1
}
.debug() // debug#2
.subscribe(onError: { [weak self] error in
self?._showAPIErrorPopupRelay.accept(error)
}, onCompleted: { [weak self] in
self?.toLoginView()
})
.disposed(by: bag)
}
}
Why this function todoUseCase.add() -> Completable, but does return nothing.
I want that when this todoUseCase.add called, call subscribe's onCompleted closure.
I tried to investigate this
debug#1 return onCompleted
debug#2 return nothing
I have a question, calling the returning Completable method inside of the flatMap method is wrong?