RxSwift 操作符 (amb)

amb

ReactiveX:
given two or more source Observables, emit all of the items from only the first of these Observables to emit an item or notification

给两个或多个Observableamb只发送其中一个,不管是next,error,completed事件。哪个先执行完成,就发送哪一个,其他的全部忽略。

let a = Observable<Int>.just(0)
let b = Observable<Int>.just(1)
let c = Observable<Int>.just(2)

Observable<Int>.amb([a, b, c])
    .subscribe { event in
        switch event {
        case .next(let element):
            print("element:", element)
        case .error(let error):
            print("error:", error)
        case .completed:
            print("completed")
        }}
    .disposed(by: bag)

输出:
element: 0
completed

因为a先执行成功。

猜你喜欢

转载自blog.csdn.net/weixin_38318852/article/details/80325479