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