Kurzversion: Wie implementiere ich die GetAndFetchLatest
Methode wie Akavache in meinem eigenen Code (https://github.com/akavache/Akavache/blob/501b397d8c071366c3b6783aae3e98695b3d7442/src/Akavache/Portable/JsonSerializationMixin.cs#L202) - wie in ohne Akavache?Kombinieren Sie Anfragen und Ergebnisse so schnell wie möglich
Lange Version: Ich habe eine Methode, die eine Liste von T von Datenträger zurückgibt, und ich habe eine Methode, die den gleichen Typ List<T>
vom HTTP-Dienst zurückgibt. Beide verpackt asynchron wie Task<List<T>>
In meiner Ansicht Modell möchte ich nur 1 Methode aufrufen, die eine Observable<List<T>>
zurückgibt.
So dass ich in meinem ViewModel die .Subscribe()
Methode verwenden, um die Benutzeroberfläche zu aktualisieren. Im Wesentlichen muss ich zweimal informiert werden, dass Daten verfügbar sind, und der Code im Abonnement wird auch zweimal durchgeführt.
Diese Funktion ist in Akavache in der Form der GetAndFetchLatest
Methode verfügbar ... aber ich bin nicht annähernd so fließend in RX zu verstehen, wie ich dies selbst mit meinen 2 Daten Methodenaufrufen implementieren kann.
Hinweis: damit ich nicht auf beide Aufgaben warten möchte! Ich möchte beide gleichzeitig auslösen und sobald sie mit Daten zurückkommen, benachrichtigen Sie die Observable
.
Irgendwelche Tipps?
Ooh das sieht vielversprechend aus! Lassen Sie mich das ausprobieren .... – Depechie
Gibt es vielleicht eine Möglichkeit, das fromWeb-Ergebnis nicht zu priorisieren, sondern zu verzögern, nachdem das fromDisk-Ergebnis gepusht wurde? Also warte nicht mit dem Start von fromWeb, aber warte mit dem Hinzufügen der Ergebnisse zu den Observablen nachdem die von derDisk gedrängt wurden? – Depechie
Also Beginne Anfragen zur gleichen Zeit, und egal wie lange 'FromDisk' dauert, wird es immer zuerst kommen, gefolgt von' FromWeb' sobald verfügbar? – Shlomo