2016-04-15 23 views
5

Her 5 saniyede bir URL'ye ulaşan basit bir oyuncak angular2 projesi yapıyorum. Şimdilik onu aldım, böylece URL'yi yok eder ve belge yüklendiğinde beklemez. Ama gerçekten rahatsız edici görünüyor. Bunun için daha güzel bir çözüm var mı?RxJS: hemen başlayan bir aralık

Observable.interval(1000 * 5) 
     .flatMap(() => this.http.get(url)) 
     .merge(this.http.get(url)) // Merges a stream that starts right away!!! 
     .map((res:Response) => res.json()); 
+2

StartWith'i denediniz mi? –

cevap

2

yerine

Observable.timer(0, 1000 * 5) 
      .flatMap(() => this.http.get(url), 
        (_, res) => res.json); 

timer ilk olay yayan önce ilk başta bir erteleme alır ve sonra tıpkı interval her 5 saniyede yayar.

5

Ben böyle bir şey deneyebilirsiniz düşünüyorum:

Observable.interval(1000 * 5) 
     .startWith(0) 
     .flatMap(() => this.http.get(url)) 
     .map((res:Response) => res.json()); 

Bu kez anında ve daha sonra her 5 saniyede bir değer yayacaktır. Sen timer kullanabilirsiniz

Kontrol dışarı belgelerine here.

+0

Teşekkürler Luka Jacobowitz! Birkaç saat kazmayı kurtardın. –

+0

Hiç Sorun değil! –