Class: Twterm::Promise::Callback
- Inherits:
-
Object
- Object
- Twterm::Promise::Callback
- Defined in:
- lib/twterm/promise.rb
Instance Method Summary collapse
- #has_on_fulfilled? ⇒ Boolean
- #has_on_rejected? ⇒ Boolean
-
#initialize(promise, on_fulfilled, on_rejected, next_promise) ⇒ Callback
constructor
A new instance of Callback.
- #invoke_on_fulfilled(value) ⇒ Object
- #invoke_on_rejected(reason) ⇒ Object
Constructor Details
#initialize(promise, on_fulfilled, on_rejected, next_promise) ⇒ Callback
Returns a new instance of Callback.
95 96 97 98 99 |
# File 'lib/twterm/promise.rb', line 95 def initialize(promise, on_fulfilled, on_rejected, next_promise) @promise = promise @on_fulfilled, @on_rejected = on_fulfilled, on_rejected @next_promise = next_promise end |
Instance Method Details
#has_on_fulfilled? ⇒ Boolean
101 102 103 |
# File 'lib/twterm/promise.rb', line 101 def has_on_fulfilled? !on_fulfilled.nil? end |
#has_on_rejected? ⇒ Boolean
105 106 107 |
# File 'lib/twterm/promise.rb', line 105 def has_on_rejected? !on_rejected.nil? end |
#invoke_on_fulfilled(value) ⇒ Object
109 110 111 112 113 114 115 116 117 118 |
# File 'lib/twterm/promise.rb', line 109 def invoke_on_fulfilled(value) if has_on_fulfilled? new_value = on_fulfilled.(value) next_promise.resolve(new_value) else next_promise.resolve(value) end rescue => reason next_promise.reject(reason) end |
#invoke_on_rejected(reason) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/twterm/promise.rb', line 120 def invoke_on_rejected(reason) unless has_on_rejected? if has_on_fulfilled? next_promise.reject(reason) else raise reason unless has_on_fulfilled? end return end begin new_value = on_rejected.(reason) next_promise.resolve(new_value) rescue => reason next_promise.reject(reason) end end |