【发布时间】:2019-11-17 15:01:38
【问题描述】:
我遇到了 zip 运算符的问题。我打算使用可观察的计时器
var timer = Observable<Int>
.interval(0.1, scheduler: MainScheduler.instance)
.do(onNext:
{ num in
if(num == 20)
{
//Purpose of this timer is to show progress if second request takes too long
MessagesManager.show_progress()
}
})
let source = Observable .... //my observable of networking request
return Observable.zip(source, timer,
resultSelector: { value1, value2 in
// Here i want to cancel/dispose/stop timer observable
return value1
})
.do(onNext:
{ item in
MessagesManager.dismiss_progress()
}, onError:
{ error in
MessagesManager.dismiss_progress()
})
我希望 zip 运算符在第一次调用 onComplete 时关闭第二个 observable,但在网络请求完成后计时器继续工作。我该如何解决这个问题并在 zip 块中/之后设置可观察的计时器?
【问题讨论】:
标签: ios swift reactive-programming rx-swift