方法
实例公共方法
pending?() 链接
返回关联查询是否仍在执行。
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/promise.rb, line 13 def pending? @future_result.pending? end
then(&block) 链接
返回一个新的 ActiveRecord::Promise
,该 Promise 在访问值时将应用传递的代码块。
Post.async_pick(:title).then { |title| title.upcase }.value
# => "POST TITLE"
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/promise.rb, line 36 def then(&block) Promise.new(@future_result, @block ? @block >> block : block) end
value() 链接
返回查询结果。如果查询尚未完成,访问 #value
将阻塞直到查询完成。如果查询失败,#value
将引发相应的错误。
源代码: 显示 | 在 GitHub 上
# 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