举个例子:
this.http.get('/getdata').pipe(delay(2000))
我希望此请求至少花费2秒钟才能完成,但不超过完成该请求所花费的时间。
换一种说法:
如果请求需要1秒钟才能完成,我希望可观察对象在2秒钟内完成。
如果请求需要3秒才能完成,我希望可观察对象在3秒内完成,而不是5秒。
除此之外,还有其他管道delay()
可以实现我不知道的事情吗,或者是否有必要在此基础上构建自定义管道的方法?
用例是显示一个加载器,但是如果请求完成得太快,那么当加载器只是“闪烁”一秒钟时,它看起来就不好了
要回答这个问题的问,你可以简单地用combineLatest()
一个结合timer(2000)
观察到的,请求观察到的,那么就忽略了计时器观察到的结果。之所以起作用,是因为combineLatest
等到所有可观察对象都发出了至少一个值之后才发出一个值。
combineLatest(this.http.get('/getdata'), timer(2000), x => x)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句