簡體   English   中英

RxSwift:除了使用回調外,如何建立可觀察的函數調用鏈?

[英]RxSwift: how to build up the observable function call chain other than use callback?

我正在嘗試解決異步順序問題,例如:

myclass中有一個'OriginalData',我想對其進行一些順序操作:operationA,operationB和operationC:

操作A接受原始數據並返回輸出A,完成后,操作B應將輸出A作為輸入並返回輸出B,然后移至操作C。

我所做的是使用回調:

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

結果,如果使用回調,將導致回調地獄並帶來很多麻煩。 我變成了RxSwift,但是不確定如何使用RxSwift來解決它。

(PS我已經閱讀了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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM