Class: Libuv::Q::ResolvedPromise
Constant Summary
Constants inherited from Promise
Instance Method Summary collapse
-
#initialize(loop, response, error = false) ⇒ ResolvedPromise
constructor
A new instance of ResolvedPromise.
- #resolved? ⇒ Boolean
- #then(callback = nil, errback = nil, progback = nil, &blk) ⇒ Object
Methods inherited from Promise
#catch, #finally, #progress, #ruby_catch
Constructor Details
#initialize(loop, response, error = false) ⇒ ResolvedPromise
Returns a new instance of ResolvedPromise.
175 176 177 178 179 180 181 182 |
# File 'lib/libuv/q.rb', line 175 def initialize(loop, response, error = false) raise ArgumentError if error && response.is_a?(Promise) super() @loop = loop @error = error @response = response end |
Instance Method Details
#resolved? ⇒ Boolean
212 213 214 |
# File 'lib/libuv/q.rb', line 212 def resolved? true end |
#then(callback = nil, errback = nil, progback = nil, &blk) ⇒ Object
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 |
# File 'lib/libuv/q.rb', line 184 def then(callback = nil, errback = nil, progback = nil, &blk) result = Q.defer(@loop) callback ||= blk @loop.next_tick { if @error begin result.resolve(errback.nil? ? Q.reject(@loop, @response) : errback.call(@response)) rescue Exception => e #warn "Unhandled exception: #{e.message}\n#{e.backtrace.join("\n")}\n" result.reject(e) @loop.log(:error, :q_reject_cb, e) end else begin result.resolve(callback.nil? ? @response : callback.call(@response)) rescue Exception => e #warn "\nUnhandled exception: #{e.message}\n#{e.backtrace.join("\n")}\n" result.reject(e) @loop.log(:error, :q_resolve_cb, e) end end } result.promise end |