Module: Delayer::Deferred::Deferredable::Awaitable
Instance Method Summary collapse
-
#+@ ⇒ Object
self が終了して結果が出るまで呼び出し側のDeferredを停止し、 self の結果を返す。 呼び出し側はDeferredブロック内でなければならないが、 _Deferred#next_ を使わずに 直接戻り値を得ることが出来る。 self が失敗した場合は、呼び出し側のDeferredの直近の trap ブロックが呼ばれる。.
- #enter_await ⇒ Object
- #exit_await ⇒ Object
Instance Method Details
#+@ ⇒ Object
self が終了して結果が出るまで呼び出し側のDeferredを停止し、 self の結果を返す。 呼び出し側はDeferredブロック内でなければならないが、 _Deferred#next_ を使わずに 直接戻り値を得ることが出来る。 self が失敗した場合は、呼び出し側のDeferredの直近の trap ブロックが呼ばれる。
10 11 12 13 14 15 16 17 |
# File 'lib/delayer/deferred/deferredable/awaitable.rb', line 10 def +@ response = Fiber.yield(Delayer::Deferred::Request::Await.new(self)) if response.ok? response.value else Delayer::Deferred.fail(response.value) end end |
#enter_await ⇒ Object
19 20 21 |
# File 'lib/delayer/deferred/deferredable/awaitable.rb', line 19 def enter_await change_sequence(:await) end |
#exit_await ⇒ Object
23 24 25 |
# File 'lib/delayer/deferred/deferredable/awaitable.rb', line 23 def exit_await change_sequence(:resume) end |