Class: Libuv::Q::ResolvedPromise
Constant Summary
Constants inherited
from Promise
Promise::MAKE_PROMISE
Instance Method Summary
collapse
Methods inherited from Promise
#catch, #finally, #progress
Constructor Details
#initialize(loop, response, error = false) ⇒ ResolvedPromise
Returns a new instance of ResolvedPromise.
172
173
174
175
176
177
178
179
|
# File 'lib/libuv/q.rb', line 172
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
209
210
211
|
# File 'lib/libuv/q.rb', line 209
def resolved?
true
end
|
#then(callback = nil, errback = nil, progback = nil, &blk) ⇒ Object
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/libuv/q.rb', line 181
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
result.reject(e)
@loop.log(:error, :q_reject_cb, e)
end
else
begin
result.resolve(callback.nil? ? @response : callback.call(@response))
rescue Exception => e
result.reject(e)
@loop.log(:error, :q_resolve_cb, e)
end
end
}
result.promise
end
|