2017-09-07 2 views
2

als Nachrüst docs Anruf enqueue Verfahren in Retrofit darstellen soll:Retrofit Anruf enqueue Methode oder Rxjava

Asynchron die Anfrage senden und benachrichtigen Rückruf seiner Antwort oder , wenn ein Fehler auf dem Server aufgetreten sprechen, die Anfrage zu schaffen oder die Antwort verarbeiten.

und Rxjava according to this tutorial ist:

RxJava und RxAndroid Bibliotheken erlauben es uns leicht asynchroner Verarbeitung mit Prinzipien der funktionellen reaktiven Programmierung

es scheint, diese beiden haben den gleichen Ansatz zu tun. Was sind Vor- und Nachteile von jedem? Welcher ist besser zu benutzen?

Antwort

1

Ich werde nicht sagen, dass sie den gleichen Ansatz haben. Retrofit wurde speziell für API-Aufrufe entwickelt, die synchron oder asynchron eine API für Sie aufrufen (Sie können dies angeben). während RxJava & RxAndroid kann das gleiche für Sie tun (d. h. einige Aufgaben synchron oder asynchron), ist es nicht nur auf API-Aufruf beschränkt. Sie können

Wie Sie zitieren, dass

RxJava und RxAndroid Bibliotheken viele Wunder mit RxJava/Android erlauben uns leicht asynchrone Verarbeitung mit Prinzipien der funktionellen reaktiver Programmierung

RxJava & zu tun RxAndroid macht das mit Prinzipien der funktionalen reaktiven Programmierung (FRP). FRP hat nichts mit Retrofit zu tun & daher sind sie nicht gleich & kann nicht verglichen werden.

Sie können RxJava/Android mit Retrofit auch zum Aufrufen der API in FRP Pattern verwenden.

Bitte lesen Sie this so können Sie mehr Ahnung von FRP erhalten:

Sie sollten verstehen, was Betreiber this auch lesen tut RxJava gibt &, wie Sie sie

Am Ende nutzen könnten, wenn sie von Asynchronous Sie meinte nur API-Aufrufe, dann ist Retrofit besser, weil es speziell dafür entwickelt wurde und wenn Sie unter Asynchronous einige andere Aufgaben wie ressourcenintensiv oder so gemeint haben, dann ist RxJava/Android natürlich besser, wenn Sie asynchrone Aufgaben in FRP-Mustern haben möchten Beobachter oder beobachtbar.

+0

Ja, es ist wahr, Rxjava ist generisch und Retrofit Call Enqueue ist für API-Aufruf, aber sie haben eine Sache gemeinsam und das ist Async-Verarbeitung. Also ich denke, das ist absolut vergleichbar. Du sagst also, der Unterschied liegt in Rxjava. Ich verwende das FRP-Muster und das ist alles? –

+1

FRP-Muster ist nicht "Das ist alles". Es ist wirklich schwer zu erklären, worum es bei FRP geht. Sie könnten die Artikel durchgehen, die ich verlinkt habe. Während Sie sich mehr auf asynchrone Verarbeitung konzentrieren, die auf beiden verfügbar ist, ist es einfach, dass Retrofit Async-Aufrufe besser ausführen kann, aber nur auf API-Aufrufe beschränkt ist. Mit Rx können Sie asynchrone ressourcenintensive Aufgaben ausführen und alle Beobachter benachrichtigen. Hoffe das hilft :) –