Spec-Zone.ru › Ruby on Rails 7.1

class ActiveRecord::Promise

Parent:
BasicObject

Методы экземпляров публичного интерфейса

pending?() Показать исходный код
# File activerecord/lib/active_record/promise.rb, line 13
def pending?
  @future_result.pending?
end

Возвращает значение, указывающее, выполняется ли связанный запрос в данный момент.

then(&block) Показать исходный код
# File activerecord/lib/active_record/promise.rb, line 36
def then(&block)
  Promise.new(@future_result, @block ? @block >> block : block)
end

Возвращает новый ActiveRecord::Promise, который применит переданный блок, когда значение будет обработано:

Post.async_pick(:title).then { |title| title.upcase }.value
# => "POST TITLE"
value() Показать исходный код
# 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

Возвращает результат запроса. Если запрос ещё не завершен, доступ к #value заблокирует выполнение, пока запрос не завершится. Если запрос завершился с ошибкой, #value выбросит соответствующую ошибку.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API