RxSwift:除了使用回调之外,如何建立可观察的函数调用链?
我试图解决一个异步顺序问题,例如: myclass中有一个“OriginalData”,我想对它执行一些顺序操作:operationA、operationB和operationC: operationA接受原始数据并返回outputA,完成后,operationB应将outputA作为输入并返回outputB,然后移动到operationC 我所做的是使用回调:RxSwift:除了使用回调之外,如何建立可观察的函数调用链?,swift,asynchronous,rx-swift,Swift,Asynchronous,Rx Swift,我试图解决一个异步顺序问题,例如: myclass中有一个“OriginalData”,我想对它执行一些顺序操作:operationA、operationB和operationC: operationA接受原始数据并返回outputA,完成后,operationB应将outputA作为输入并返回outputB,然后移动到operationC 我所做的是使用回调: // pseudocode class Myclass { func operationA(inputA, callback:
// pseudocode
class Myclass {
func operationA(inputA, callback: operationB)
func operationB(inputB, callback: operationC)
..
}
因此,如果使用回调,将导致回调地狱和许多麻烦。我变成了RxSwift,但不知道如何使用RxSwift来解决它
另外,我已经阅读了RxSwift的官方文件,但仍然不能把我的想法说清楚。非常感谢您的帮助 我认为使用PublishSubject可以解决这个问题,如下所示:
let operationA = PublishSubject<String>()
let operationB = PublishSubject<String>()
let operationC = PublishSubject<String>()
let disposeBag = DisposeBag()
operationA.asObserver()
.subscribe(onNext:{element in
operationB.onNext(element)
})
.disposed(by: disposeBag)
operationB.asObserver()
.subscribe(onNext:{element in
operationC.onNext(element)
})
.disposed(by: disposeBag)
operationC.asObserver()
.subscribe(onNext:{element in
print(element)
})
.disposed(by: disposeBag)
operationA.onNext("A")
你能用代码再解释一下lil吗。。