我開始研究ReactiveX,無法理解REST API或任何沒有關聯UI的API的優點。例如,我正在構建由另一臺機器上託管的Angular webapp(以及最終其他應用程序)使用的Spring Boot REST API。每當我從webapp發送請求時,我都會使用promise來處理結果而不會阻塞。沒有UI的REST API中的ReactiveX
因此,這種情況下,在Spring Boot應用程序中使用ReactiveX(RxJava)是否合理?它會帶來什麼好處?
我開始研究ReactiveX,無法理解REST API或任何沒有關聯UI的API的優點。例如,我正在構建由另一臺機器上託管的Angular webapp(以及最終其他應用程序)使用的Spring Boot REST API。每當我從webapp發送請求時,我都會使用promise來處理結果而不會阻塞。沒有UI的REST API中的ReactiveX
因此,這種情況下,在Spring Boot應用程序中使用ReactiveX(RxJava)是否合理?它會帶來什麼好處?
隨着ReactiveX你可以在同一時間asyncronous做不同的調用,當所有這些電話都做了你做的東西(如dissmiss進度),要做到這一點,你必須使用壓縮操作:http://reactivex.io/documentation/operators/zip.html
可以使也一個接一個地執行異步任務。您可以過濾第一個電話並將其回覆給第二個電話。您可以通過過濾器和FlatMap運營商做到這一點:
在一個純粹的REST API,其中我基本上只進行CRUD操作,我不應該需要執行並行任務因此ReactiveX不有幫助,是嗎? –
您可以從REST API執行並行CRUD操作,例如顯示包含教室組列表和人員列表的儀表板。您應該執行兩項parralel任務,獲取所有人員並獲取所有組。一旦你得到了結果,你就會顯示這個dashbord。另一個使用平面映射操作的例子,你可以使用異步crud任務作爲輸入參數來執行另一個異步crud任務 – Karim
我仍然認爲你的儀表板例子更好的方法是讓UI做出兩個並行請求(使用promise),服務器會分別處理這些信息(tomcat爲每個請求創建一個線程),然後使用Promise.all之類的方式在完成後顯示儀表板。服務器無法使用ReactiveX。但我認爲事情現在更清楚了。 –