在此场景中使用哪个rxSwift运算符?

在此场景中使用哪个rxSwift运算符?,swift,reactive-programming,rx-swift,rx-cocoa,combinelatest,Swift,Reactive Programming,Rx Swift,Rx Cocoa,Combinelatest,这是我的设想。我有一个主题与另一个主题在联合测试中一起使用。到现在为止,一直都还不错。现在我在其中一个主题上推动onCompleted,但当另一个主题推动某个事件时,CombineTest仍在工作 我想要的是,一旦这两门课都完成了,我就希望最优秀的学生停止工作。CombineTest是这里使用的正确操作符吗?或者是否有其他操作员可用?您应该使用takeUntil操作员: let subject1 = PublishSubject<Void>() let subject2 = Publ

这是我的设想。我有一个主题与另一个主题在联合测试中一起使用。到现在为止,一直都还不错。现在我在其中一个主题上推动onCompleted,但当另一个主题推动某个事件时,CombineTest仍在工作


我想要的是,一旦这两门课都完成了,我就希望最优秀的学生停止工作。CombineTest是这里使用的正确操作符吗?或者是否有其他操作员可用?

您应该使用takeUntil操作员:

let subject1 = PublishSubject<Void>()
let subject2 = PublishSubject<Void>()
let subjectWasCompleted = Observable<Void>
    .merge(
        subject1.ignoreElements().andThen(.just(())),
        subject2.ignoreElements().andThen(.just(()))
    )

Observable.combineLatest(subject1, subject2)
    .takeUntil(subjectWasCompleted)
    .subscribe()
    .disposed(by: disposeBag)
let subject1=PublishSubject()
let subject2=PublishSubject()
让受试者完成=可观察
.合并(
subject1.ignoreElements()和(.just(()),
subject2.ignoreElements()和(.just(()))
)
可观察。组合测试(主题1,主题2)
.takeUntil(主题已完成)
.subscribe()
.处置(由:处置人)

你能提供一些代码让我们看看吗?所以我用另一种方法解决了我的问题,但这正是我可以使用的操作符。谢谢