2016-05-24 14 views
1

Neu bei RxSwift/Reactivex. Grundsätzlich versuche ich, einen Server anzurufen, wenn etwas passiert, aber stelle sicher, dass es nicht öfter als alle 10 Sekunden gemacht wird. Weniger oft wenn möglich.RxSwift: Empfängt Ereignisse sofort, außer das letzte Ereignis wurde innerhalb eines bestimmten Intervalls verarbeitet

Wenn beispielsweise ein Ereignis ("needs update") generiert wird, möchte ich den Server sofort anrufen, wenn seit meinem letzten Anruf mehr als 10 Sekunden vergangen sind. Wenn weniger Zeit vergangen ist, möchte ich den Anruf auf der 10-Sekunden-Marke von der letzten machen. Es spielt keine Rolle, wie viele Ereignisse innerhalb dieser 10 Sekunden generiert wurden.

Ich schaute auf die Beschreibung von throttle, aber es scheint zu verhungern, wenn Ereignisse sehr schnell passieren, was nicht wünschenswert ist.

Wie kann ich das erreichen?

+0

Könnten Sie erarbeiten, was Sie unter „verhungern“? – solidcell

+0

Es bedeutet, dass Ereignisse nicht geliefert werden, wenn sie oft genug vorkommen. – Andreas

+0

Wo sehen Sie diese Beschreibung? Das habe ich in der Dokumentation nicht gesehen und auch nicht selbst erlebt. Könnten Sie einen Link dazu erstellen und den entsprechenden Text einfügen? – solidcell

Antwort