EventMachine에서 일부 차단 라이브러리/작업을 통합하려고하는데 EM :: Deferrable이 포함 된 클래스 내에 이러한 코드를 캡슐화하는 방법을 고려했습니다.EM.defer 내부에서 실행할 때 콜백 및 오류 복구를 포함시키는 것이 합리적입니까?
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)
, 내가 나를 위해 그것을 조금 더 읽어 이후, 첫 번째를 선호 그것은 지연 가능 객체에서 이러한 코드를 가지고 의미가 있는가 . 이런 경우 연기가 가능하다면 의미가 있습니까?
간단하면 람다를 사용하여 연기 할 수있는 복잡한 리팩터링을 시작할 때 – bbozo