2016-05-14 10 views
4

は、私が使用されるが、完全にPotActionクラスを理解し、ごく最近、よく、非同期要求を伴う状況で好まれているように見えるどちらもAsyncActionクラスは、発見されていません。私はそれを理解していますが、設計の意思決定と命名の選択を完全には理解していないため、より狭いユースケースが示唆されています。スカラジオのダイオードライブラリでは、Action、AsyncAction、PotActionの違いは何ですか?認証にはどのようなものがありますか? <code>scala</code>と<code>scalajs</code>ライブラリ<code>Diode</code>で

両方がリフレッシュのいくつかの種類の非同期要求、更新内容ではなくCQRSの意味でのコマンドをモデル化しているかのように具体的には、AsyncActionPotAction両方は、initialModelnextを必要とします。私はsomewhat-related question open regarding synchronous actions on form inputsを持っています。

私はいくつかの具体的な使用例を念頭に置いています。

  • OpenAuth-従来のフローで

    • ユーザー名/パスワードの認証:私はあなたのいずれかと一緒にPotActionのようなものを使用する方法のスケッチ(実装のために求めていない、単なる概念)を知りたいのですがリモートシェル
    • ためのコマンドの関与サードパーティおよびリダイレクト
    • とスタイル認証フォーム入力のトークンやクッキー認証舞台裏
    • サーバー側の検証
    • 提出0

    これらのすべては、PotActionを使って見たものとは少し違って見えますが、実際には現在の状態に基づいて何かをレンダリングするときに既に役立っていますPot

  • +0

    'PotAction'は' Pot 'を使う 'AsyncAction'の便利なサブタイプです。なぜならあなたはなぜ"同じ "メソッドを持っているのかを説明しています。 – jmelanson

    答えて

    4

    歴史的に、PotActionは彼らの関係ビットを説明する可能性がある、(PotMapPotVectorをサポートするために)そこから一般化された後の時間AsyncActionで最初にして来ました。どちらも、リモートデータを取得する非同期アクションを処理するための抽象化と状態の処理を提供します。だから、非常に特殊な(そして共通の)ユースケースのために作成されました。

    しかし、通常はアプリケーションがロードされる前であっても、サーバーから要求されたデータであるため、認証には使用しません。

    フォームの検証は通常、同期するものです。ユーザーが何か他の操作を行っている間にバックグラウンドで実行しないので、やはりAsync/PotActionはあまりよくありません。

    最後にリモートコマンドユースケースPotActionは、コマンドの結果をユーザーに提示して準備ができていることを前提としている場合に適しています。おそらくPotStreamは、コマンドが安定したデータストリームを生成しているのか、単一のメッセージしか生成していないのかによって、さらに良いでしょう。

    多くの場合、リモートデータの取得と更新を目的としたさまざまな構造のPotを使用し、アイデアや内部モデルの一部(再試行メカニズムなど)を他の要求に適用する必要がありますタイプ。

    すべてのPotのものは、Diodeコアからモジュールに分割されており、Diodeで作業するのに便利なヘルパーであることを強調しています。開発者は、新しいユースケースのために、独自のヘルパーを作成して(そしてDiodeに貢献してください!)自由に感じるべきです。

    +0

    ウェブソケットレスポンスを扱うのに 'PotStream'を使うかもしれないと言うのは安全でしょうか? –

    +2

    概念は全く異なっているわけではありません。 'PotStream'は、(潜在的に無限の)データのストリームを表し、クライアントが与えられた範囲を見ることを望みます。長い歴史を持つチャットの会話のようなものを想像してみてください。 'PotStream'では、チャット履歴をモデル化し、ストリームの両端に新しいメッセージを追加して、ユーザーがチャット履歴をどのようにスクロールしているかを反映させることができます。 ストリームを自動的に更新するためにWebソケットを使用できますが、Webソケットを 'PotStream'としてモデル化することはできません。 – ochrons

    関連する問題