Methods

Instance Public methods

pending?()

Returns whether the associated query is still being executed or not.

📝 Source code
# File activerecord/lib/active_record/promise.rb, line 13
    def pending?
      @future_result.pending?
    end
🔎 See on GitHub

then(&block)

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"
📝 Source code
# File activerecord/lib/active_record/promise.rb, line 36
    def then(&block)
      Promise.new(@future_result, @block ? @block >> block : block)
    end
🔎 See on GitHub

value()

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 code
# 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
🔎 See on GitHub