gpt4 book ai didi

swift - Rx swift : how to build up the observable function call chain other than use callback?

转载 作者:行者123 更新时间:2023-11-28 14:41:46 25 4
gpt4 key购买 nike

我正在尝试解决异步顺序问题,例如:

我的类中有一个'OriginalData',我想对它做一些顺序操作:operationA、operationB 和operationC:

operationA接受OriginalData并返回outputA,完成后,operationB应该以outputA为输入返回outputB,然后转到operationC..

我所做的是使用回调:

// pseudocode
class Myclass {
func operationA(inputA, callback: operationB)
func operationB(inputB, callback: operationC)
..
}

因此,如果使用回调,将导致回调 hell 和很多麻烦。我转成RxSwift,但不知道如何使用RxSwift来解决。

(P.S 我已经阅读了 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")

关于swift - Rx swift : how to build up the observable function call chain other than use callback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com