私はEMの上に書かれたAPIを使用しています。これは、電話をかけるには、次のようなものを書く必要があることを意味します。
EventMachine.run do
api.query do |result|
# Do stuff with result
end
EventMachine.stop
end
正常に動作します。
しかし今、私は Sinatra コントローラー内でこの同じ API を使用したいと考えています。私はこれを試しました:
get "/foo" do
output = ""
EventMachine.run do
api.query do |result|
output = "Result: #{result}"
end
EventMachine.stop
end
output
end
しかし、これはうまくいきません。ブロックはバイパスされるrun
ため、空の応答が返さstop
れ、呼び出されると Sinatra はシャットダウンします。
関連性があるかどうかはわかりませんが、私の Sinatra アプリは Thin で実行されます。
私は何を間違っていますか?