私は、複数のREST APIを呼び出すプロキシを使用して、UIのコースグレイン出力を作成しています。 UIはKnockoutJSで構築されています。私は非同期的にAPIを呼び出すためにタスク/非同期メソッドを使用しています。 1つまたは2つのAPIだけがリストを返し、他はすべてフラット値のオブジェクトを返します。 Rxはコレクションを返さないAPIの結果を結合するために使用できますか?出力はコレクションではないので、それはイベントストリームではないので、RxとのこのようなAPIコールをRxガイドラインと組み合わせることはできますか?リアクティブな拡張機能は、コレクションを返すAPI呼び出しにのみ適していますか?
1
A
答えて
1
出力はコレクションではないため、イベントストリームではないので、RxとのこのようなAPI呼び出しをRxガイドラインと組み合わせることはできますか?
1つのイベントのみのストリームとしてAPI呼び出しを参照してください。このイベントはList
、またはちょうどObject
です。
コレクションを返さないAPIの結果を結合するためにRxを使用できますか?
はい! Reactive Extentionsは、非同期呼び出し用のAPIです。 APIがコレクション、オブジェクト、または何も返さないかどうかは関係ありません。
例:
interface YourRemoteApi {
Observable<List<String>> users();
Observable<User> userData(String id);
Observable<Void> deleteUser(String id);
}
class Main {
public static void main(String...args) {
YourRemoteApi api = ...
api.users()
// transform an Observable<List<String>> to Observable<String>
.flatMapIterable(ids -> ids)
// call in a async fashion api.userData()
.contatMap(id -> api.userData(id))
.filter(data -> data.toDelete())
// call in a async fashion api.deleteUser
.flatMap(data -> api.deleteUser(data.id))
.subscribe();
}
}
PS:この例では、RxJavaを使用しています。別の言語のポート(Reactive Extensions for .NETなど)が異なる場合があります。
+0
あなたができるということは、あなたがすべきことではないということだけです。 Javaでは、表現力が非常に限定されており、非同期プログラミングの構文サポートはありません。 C#、VB、その他の言語では、はるかに洗練されたオプションがあります。 Javaはひどいです - それに関して世界を見ないでください。 –
関連する問題
- 1. Firefoxの拡張機能からJS api呼び出しをインストルメントする
- 2. プロパティで呼び出されたメソッドのリアクティブな拡張
- 3. 拡張機能/アドオンの機能を呼び出す
- 4. クロム拡張機能を呼び出して応答を取得
- 5. mimeタイプからChrome拡張機能をトリガーまたは呼び出します
- 6. セレクタからのプロトコル拡張機能の呼び出し
- 7. 拡張機能からのUIViewControllerの呼び出し関数
- 8. traitは機能拡張機能を拡張していますか(A => B)?
- 9. Chrome拡張機能:コンテンツスクリプトのページからjavascript関数を呼び出します。
- 10. Chrome拡張機能からAppleScriptを呼び出してください
- 11. handleGetURLEvent:Safari拡張機能で呼び出されないMac OS
- 12. Google Chrome拡張機能の同期呼び出し
- 13. TYPO3拡張機能の主機能が呼び出されない
- 14. サイトからChrome拡張機能のバックグラウンド機能を呼び出す
- 15. Webサービスを呼び出すには、firefox拡張機能を使用してネットBeanでビルドしますか?
- 16. Chrome拡張機能onSuspendは決して呼び出されません
- 17. Chrome拡張機能:background.jsのcontentscript.jsの関数を呼び出す
- 18. Grails 3カスタムAPIへの快適な呼び出しが機能しない
- 19. Chrome拡張機能バックグラウンドページのメソッドを呼び出せません
- 20. ページJavaScript拡張機能を呼び出すJavaScript
- 21. Chrome拡張機能を使用してキーボードのファンクションキーを呼び出すことは可能ですか
- 22. 拡張クラスからの呼び出し
- 23. Chrome拡張機能:オプションページの機能をバックグラウンドページから呼び出すことはできますか?
- 24. RxJava APIリスト内のすべてのアイテムを呼び出し、拡張アイテムのリストを返します
- 25. 拡張CFCまたは親CFCを呼び出しますか?
- 26. ブラウザ拡張:API呼び出しを保護する方法
- 27. Shopify API呼び出しがRailsのバックグラウンドジョブで機能しない
- 28. Zomato APIへのAjax呼び出しが機能しない
- 29. 拡張機能が有効になっていますが、未定義の関数finfo_open()を呼び出す
- 30. APIを使用したChrome拡張機能が機能していません
いくつかのコードを教えてください。 –
どちらの場合も、(Rxの意味で)単一の値が返されます。その単一の項目はスカラー値またはコレクションかもしれませんが、これはまだ単一のHTTP応答です(ここでは、RESTとはHTTPを意味すると仮定しています)。あなたがWebSocketまたはAtomフィードからのメッセージの流れであったならば、Rxの言葉ではyesとなり、それ以上の基数を持つ一連の出来事が起こります。いずれにしても、Rxはうれしく0,1または多くの。 –