1

私はいくつかのブロッキング ライブラリ/操作を EventMachine 内に統合しようとしています。EM::Deferrable を含むクラス内にそのようなコードをカプセル化することを検討しました。そのようなコードを Deerrable オブジェクトに含めることは理にかなっていますか?

class Whatever
  include EM::Deferrable
  def some_operation
    result = some_blocking_operations
    if result.considered_success?
      succeed(result)
    else
      fail(result)
    end
  end
end

または私はただ固執する必要があります:

op = lambda do
  result = some_blocking_operations
end

cb = lambda do |res|
  # do some kind of if here to check if it's success or failure
end

EM.defer(op,cb)

個人的には、最初の方が読みやすいので、最初の方が好きです。そのような場合に deerrable を実装するのは理にかなっていますか?

4

1 に答える 1