2017-10-16 157 views
0

如何才能延遲http請求,只有當它在1秒內完成。角度延遲快​​速http請求

第一種場景: - http請求在300ms內完成,然後等待1秒結束。

第二種情況: - http請求在1秒內完成並且300ms,那麼我們不會延遲。

如何用observables來實現這個?

+0

你介意問什麼是調用API,並且延遲的情況?雖然下面的答案是有效的,但我很好奇...... –

+0

@IgorSoloydenko我們遇到了一個http請求的問題,它有時比我們的加載動畫更快,而且它並不漂亮,所以我們都同意等待動畫完成,儘快從http調用結果並不重要。 –

+0

Ahhhh,基本上這是一個用戶體驗問題。說得通! –

回答

5

您可以使用forkJoin要等到雙方完成觀測量:

Observable.forkJoin(
    this.http.get(...), 
    Observable.of(null).delay(1000), 
    r => r // Use only the HTTP response 
)) 
.subscribe(); 
+0

優秀:)!!! – Maxime

+0

這是一個[Plunkr](https://plnkr.co/edit/e2phrWHfrohkKAhYTbwg?p=preview),其中有一個可以重用的函數[@Rachid Oussanaa](https://stackoverflow.com/users/1543885/rachid- oussanaa)。我還添加了一個基準,以快速(300ms)和緩慢(1300ms)響應顯示結果。 – Maxime