我使用的是写在 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 上运行。
我究竟做错了什么?