ActiveRecord::Promise (original) (raw)
Methods
P
T
V
Instance Public methods
pending?()Link
Returns whether the associated query is still being executed or not.
def pending? @future_result.pending? end
then(&block)Link
Returns a new ActiveRecord::Promise that will apply the passed block when the value is accessed:
Post.async_pick(:title).then { |title| title.upcase }.value
# => "POST TITLE"
def then(&block) Promise.new(@future_result, @block ? @block >> block : block) end
value()Link
Returns the query result. If the query wasn’t completed yet, accessing value will block until the query completes. If the query failed, value will raise the corresponding error.
def value return @value if defined? @value
result = @future_result.result @value = if @block @block.call(result) else result end end