Instance Public methods
pending?() Link
Returns whether the associated query is still being executed or not.
Source: show
# File activerecord/lib/active_record/promise.rb, line 13 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_pluck(:title).then { |title| title.upcase }.value
# => "POST TITLE"
Source: show
# File activerecord/lib/active_record/promise.rb, line 36 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.
Source: show
# File activerecord/lib/active_record/promise.rb, line 20 def value return @value if defined? @value result = @future_result.result @value = if @block @block.call(result) else result end end