2012-01-18 69 views
0

如何在反應堆啓動後添加延遲?扭曲:在反應堆運行時創建延遲

例如,我該如何實現以下工作流程?

  1. 獲得的網頁列表&提取數據基於該數據
  2. ,獲得數目不詳的其他網站

目前我做了以下內容:

  1. 定義列表&功能上面的第1點,並創建一個延期
  2. 運行反應堆
  3. 處理來自1的響應的函數,爲上面的點2創建其他延遲。不幸的是,這些永遠不會叫...

非常感謝。

回答

2

語言「添加延遲」表明您誤解了延期的目的。 Deferred只是一個方便的API,用於將回調與長時間運行的異步操作相關聯。延期物不會被收集在任何一個收集物中或被反應堆跟蹤。它們是一個共同的對象,它將一段代碼提供給另一段消耗該結果的代碼。

這就是說,這聽起來像你正在做大致正確的事情。反應堆運行時延遲時間與未運行時相比沒有區別。這是因爲反應堆在延遲操作中不起作用。

如果您有未被調用的回調,這是因爲它們所附的延期無法獲得結果。沒有辦法說明爲什麼沒有看到你的代碼(最好是short, self-contained, correct example)。