環境
私は ClojureScript で遊んでいるので、Ajax は次のように動作します。
(make-ajax-call url data handler);
ハンドラーは次のようになります。
(fn [response] .... )
さて、これは、「新しいデータを取得し、左側のサイドバーを更新する」のようなことを言いたい場合、最終的には次のようになります。
(make-ajax-call "/fetch-new-data" {} update-sidebar!) [1]
さて、私はこれを次のように書きたいと思います:
(update-sidebar! (make-ajax-call "/fetch-new-data" {})) [2]
しかし、make-ajax 呼び出しがすぐに戻るため、機能しません。
質問
これを機能させるために、モナドまたはマクロを使用する方法はありますか? [2] が [1] に自動書き換えされるようにするには?私は信じている:
- [1[ に書き換えられるため、パフォーマンスが低下することはありません。
非同期イベントではなく同期ステップで考えることができるので、私にとってはより明確に推論できます
この問題に遭遇したのは私が初めてではないと思うので、これがよく知られている問題であれば、「Google for Problem Foo」という形式の回答は完全に有効です。
ありがとう!