如何进行异步回调同步处理

时间:2016-10-15 18:22:31

标签: ruby asynchronous callback synchronization pubnub

我遇到的情况是我在gem上调用一个异步处理它的方法。我希望能够在调用方法的线程上继续执行之前等待回调。

gem.async_method(args) do |result|
    # the callback
end
# wait until callback is called and then continue execution
puts result # somehow have access to the result from the callback

2 个答案:

答案 0 :(得分:0)

PubNub Ruby SDK http_sync

我认为您只是在http_syncpublish'等PubNub时查找subscribe参数。 https://www.pubnub.com/docs/ruby/api-reference-sdk-v4#publish_args

pubnub.publish(
    channel: 'my_channel',
    message: { text: 'Hi!' },
    http_sync: true
) do |envelope|
    puts envelope.status
end

答案 1 :(得分:0)

我设法最终找到了解决方案。我使用的宝石返回{{1}}。如果你调用{{1}},它将阻止执行,直到收到值。