【发布时间】:2021-03-12 15:19:36
【问题描述】:
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)
}
}
为什么这个函数 todoUseCase.add() -> 可完成,但不返回任何内容。
我希望当这个 todoUseCase.add 被调用时,调用 subscribe 的 onCompleted 闭包。
我试图对此进行调查
-
调试#1 完成后返回
-
调试#2 什么都不返回
我有一个问题,在 flatMap 方法内部调用返回的 Completable 方法是错误的?
【问题讨论】: