Sha256: a107bd4bf7b2c70ffacf3af1c1fb355294a630ce98a25bbf92d4fee8eb0ebaed
Contents?: true
Size: 894 Bytes
Versions: 3
Compression:
Stored size: 894 Bytes
Contents
# encoding: utf-8 class Promise class Callback def self.assume_state(source, target) on_fulfill = target.method(:fulfill) on_reject = target.method(:reject) source.then(on_fulfill, on_reject) end def initialize(promise, on_fulfill, on_reject, next_promise) @promise = promise @on_fulfill = on_fulfill @on_reject = on_reject @next_promise = next_promise end def call if @promise.fulfilled? call_block(@on_fulfill, @promise.value) else call_block(@on_reject, @promise.reason) end end def call_block(block, param) if block begin @next_promise.fulfill(block.call(param)) rescue => ex @next_promise.reject(ex) end else self.class.assume_state(@promise, @next_promise) end end end private_constant :Callback end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
promise.rb-0.7.1 | lib/promise/callback.rb |
promise.rb-0.7.0 | lib/promise/callback.rb |
promise.rb-0.7.0.rc2 | lib/promise/callback.rb |