1
我有一些Deferrables,我需要在回調完成時做一些回調。EventMachine延遲迴調鏈
defers[0].callback do
defers[1].callback do
defers[2].callback do
yield if block_given?
end
end
end
但這是非常醜陋的,我必須知道必要的回調的確切數量。 我怎樣才能以更簡潔的方式來書寫它?
像在jQuery中,$.when
允許傳遞一個數組的$.Deferred
對象,這將是可怕的,我可以在Ruby中做到這一點?
$.when(defers).done(function() {
// do something
})
因爲使用不兼容的庫,我不能使用em-synchrony。
解決方案:
multi = EventMachine::MultiRequest.new
defers.each.with_index do |defer, i|
multi.add(i, defer)
end
multi.callback do
yield if block_given?
end
謝謝,它看起來我可以直接使用MultiRequest,因爲它不包含任何http請求相關的代碼,只是處理回調。 – zakjan