class ActiveRecord::Promise

def value

If the query failed, +#value+ will raise the corresponding error.
If the query wasn't completed yet, accessing +#value+ will block until the query completes.
Returns the query result.
def value
  return @value if defined? @value
  result = @future_result.result
  @value = if @block
    @block.call(result)
  else
    result
  end
end