私はSinatraアプリケーションのPOSTメソッドの一部として別のサーバーにリクエストしています。要求を行うために使用しているライブラリは、要求が行われたときにすぐにEM :: Deferrableオブジェクトを返すEventMachineライブラリですが、非同期要求が完了するまでコントローラメソッドでブロックする必要があります。要求で返されたデータこれを行うための最良の方法は何ですか?EventMachineの遅延オブジェクトをブロックするにはどうすればよいですか?
0
A
答えて
1
async_sinatraとEMベースのWebサーバーThinの1つの解決方法があります。 async_sinatraを使用すると、明示的レンダリングの方法はbody
になります。
require 'sinatra/async'
require 'em-http-request'
class Application < Sinatra::Base
register Sinatra::Async
apost '/' do
http = EM::HttpRequest.new('http://www.google.de/').get
http.callback do
body do
# your http processing in here, will be rendered
end
end
http.errback do
body { 'error' }
end
end
end
+0
これは完全に機能しました。ありがとう! – Bryan
0
イベントを発生したAPIでブロックすると、2つの世界のうち最も悪いものになります。
私は、より伝統的な方法(ラ・カール)に賛成するEMを通した呼び出しを避けようとします。
これが不可能な場合は、空の部分を返し、クライアントにサーバーの更新をポーリングしてもらいます。
関連する問題
- 1. ラケットで関数の引数を遅延/遅延評価するにはどうすればよいですか?
- 2. システムをブロックせずに遅延AMP応答を与えるにはどうすればよいですか?
- 3. 遅延アクションをテストする方法 - EventMachine
- 4. Googleジオコーディングを遅延させるにはどうすればよいですか?
- 5. コールバックサンプルを遅延オブジェクトに変換するにはどうすればよいですか?
- 6. 特定のスライダーイメージに遅延を伴うモーダルをロードするにはどうすればよいですか?
- 7. 署名付きライブラリによるブート遅延を回避するにはどうすればよいですか?
- 8. 遅延ロードを行うためにプライベートプロパティのヌルチェックを避けるにはどうすればよいですか?
- 9. C#でWebリクエストとサイトの間に遅延を導入するにはどうすればよいですか?
- 10. このメニューのマウスオーバーで遅延を設定するにはどうすればよいですか?
- 11. ネイティブのjavascriptの約束で遅延パターンを実行するにはどうすればよいですか?
- 12. Spotifyアプリケーションでの同期Webサービスコールの遅延を回避するにはどうすればよいですか?
- 13. AutoHotkeyのSendInputコマンドの間に遅延を追加するにはどうすればよいですか?
- 14. 表示テキストのテキストビューで遅延を使用するにはどうすればよいですか?
- 15. データストアで一貫性の遅延を追跡するにはどうすればよいですか?
- 16. 遅延関数のシーケンスをjQuery 1.8.xにチェーンするにはどうすればよいですか?
- 17. このjQueryマウスオーバーに遅延を追加するにはどうすればよいですか?
- 18. サイドメニューのホバーに遅延を追加するにはどうすればよいですか?
- 19. Javascript DOM要素の表示に遅延を追加するにはどうすればよいですか?
- 20. Javascript forループにサーバー側の遅延を追加するにはどうすればよいですか?
- 21. viewDidLoadでperformSegueに遅延を追加するにはどうすればよいですか?
- 22. シェーダの最初の使用の遅延を修正するにはどうすればよいですか?
- 23. ネストされたコレクションを遅延ロードするにはどうすればよいですか?
- 24. プラグインの実行をコールバックから遅延させるにはどうすればよいですか?
- 25. 時間遅延の競合を処理するにはどうすればよいですか?
- 26. "kafka"メッセージの遅延を修正するにはどうすればよいですか?
- 27. DynamoDBストリームの伝搬遅延を測定するにはどうすればよいですか?
- 28. android - Samsung RFSファイルシステムの遅延/フリーズを回避するにはどうすればよいですか?
- 29. Node.JSの遅延操作を正しく処理するにはどうすればよいですか?
- 30. onClickで遅延を実装するにはどうすればよいですか?
ThinのようなEM Webサーバーを使用していますか? – tbuehlmann