Class: Libuv::Q::ResolvedPromise
Instance Attribute Summary
Attributes inherited from Promise
Instance Method Summary collapse
-
#initialize(reactor, response, error = false) ⇒ ResolvedPromise
constructor
A new instance of ResolvedPromise.
- #resolved? ⇒ Boolean
- #then(callback = nil, errback = nil, progback = nil) ⇒ Object
Methods inherited from Promise
#catch, #finally, #progress, #ruby_catch, #value
Constructor Details
#initialize(reactor, response, error = false) ⇒ ResolvedPromise
Returns a new instance of ResolvedPromise.
176 177 178 179 180 181 182 183 |
# File 'lib/libuv/q.rb', line 176 def initialize(reactor, response, error = false) raise ArgumentError if error && response.is_a?(Promise) super() @reactor = reactor @error = error @response = response end |
Instance Method Details
#resolved? ⇒ Boolean
210 211 212 |
# File 'lib/libuv/q.rb', line 210 def resolved? true end |
#then(callback = nil, errback = nil, progback = nil) ⇒ Object
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 |
# File 'lib/libuv/q.rb', line 185 def then(callback = nil, errback = nil, progback = nil) result = Q.defer(@reactor) callback = Proc.new if block_given? @reactor.next_tick { if @error begin result.resolve(errback ? errback.call(@response) : Q.reject(@reactor, @response)) rescue Exception => e result.reject(e) @reactor.log e, 'performing promise rejection callback', @trace end else begin result.resolve(callback ? callback.call(@response) : @response) rescue Exception => e result.reject(e) @reactor.log e, 'performing promise resolution callback', @trace end end } result.promise end |