我有一个Observable可以执行一些任务,我希望它能在5秒后给我结果,但是它会在此之前,有时在5秒后给我结果,具体取决于复杂程度。
例如:
如果我的代码在2秒内完成了任务并即将发出计算出的值。我希望它再等待3秒,然后发出计算出的值。
我该如何实现?我听说过防抖和节流阀。
答案 0 :(得分:6)
如果您希望延迟Observable
发出值,则可以执行以下操作:
Observable.just(()).delay(.seconds(2), scheduler: MainScheduler.instance)
答案 1 :(得分:2)
您可以将Observable.zip
与Observable<MyType>.zip(
myObservable,
Observable<Int>.timer(RxTimeInterval.seconds(5), scheduler: MainScheduler.instance),
resultSelector: { myItem, _ in return myItem }
)
一起使用。
类似的东西:
data:any[]=[]
getData(data:any[],index,nodes)
{
nodes.forEach(x=>{
x.level=index
data.push(x)
if (x.children && x.open)
this.getData(data,index+1,x.children)
})
return data;
}
结果选择器将忽略计时器产生的值。