Class: EventMachine::Defer::ResolvedPromise

Inherits:
Promise
  • Object
show all
Defined in:
lib/em-promise/defer.rb

Instance Method Summary collapse

Constructor Details

#initialize(response, error = false) ⇒ ResolvedPromise

Returns a new instance of ResolvedPromise.

Raises:

  • (ArgumentError)


73
74
75
76
77
# File 'lib/em-promise/defer.rb', line 73

def initialize(response, error = false)
	raise ArgumentError if error && response.is_a?(Promise)
	@error = error
	@response = response
end

Instance Method Details

#then(callback = nil, errback = nil, &blk) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/em-promise/defer.rb', line 79

def then(callback = nil, errback = nil, &blk)
	result = Defer.new
	
	callback ||= blk
	
	EM.next_tick {
		if @error
			result.resolve(errback.nil? ? Defer.reject(@response) : errback.call(@response))
		else
			result.resolve(callback.nil? ? @response : callback.call(@response))
		end
	}
	
	result.promise
end