Я использую библиотеку, которая позволяет мне опрашивать события (блокирование), пока больше нет событий (в этом случае возвращается nil
).
Я испытываю желание реализовать наблюдаемое так:
private func createObservable() -> Observable<MyEvents> {
return Observable.create { observer in
let myPollingObject = PollingObject()
while let event = try myPollingObject.poll() {
observer.onNext(event)
}
return Disposables.create()
}
}
Где цикл while
заканчивается, когда больше нет событий (и poll()
возвращает nil
).
Однако цикл while
означает, что я никогда не return Disposables.create()
, что является проблемой.
Есть ли более реактивный способ реализовать это? Мне не очень хочется помещать цикл while
в поток ...