46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/reactive_record/active_record/reactive_record/while_loading.rb', line 46
def self.run_blocks_to_load(fetch_id, failure = nil)
if @blocks_to_load
blocks_to_load_now = @blocks_to_load.select { |data| data.first == fetch_id }
@blocks_to_load = @blocks_to_load.reject { |data| data.first == fetch_id }
@load_stack ||= []
blocks_to_load_now.each do |data|
id, promise, block = data
@load_stack << @loads_pending
@loads_pending = nil
result = block.call(failure)
if check_loads_pending and !failure
@blocks_to_load << [Base.last_fetch_at, promise, block]
else
promise.resolve result
end
@loads_pending = @load_stack.pop
end
end
rescue Exception => e
React::IsomorphicHelpers.log "ReactiveRecord.load exception raised during retry: #{e}", :error
end
|