single
ReactiveX:
emit only the first item (or the first item that meets some condition) emitted by an Observable
只发出可观察到的第一项(或满足某些条件的某一项)。如果只是使用single的话,如果可观察者的元素多余1个会再次发送error事件
Observable<Int>.of(1, 2, 3)
.single()
.subscribe(onNext: { element in
print("element:", element)
}, onError: { error in
print("error:", error)
})
.disposed(by: bag)
Observable<Int>.of(1, 2, 3)
.single { $0 == 3 }
.subscribe(onNext: { element in
print("element:", element)
})
.disposed(by: bag)
输出:
element: 1
error: Sequence contains more than one element.
*--------*
element: 3
第一个例子返回了一个错误
第二个例子没有返回错误