我正在學習節點並編寫一個API。我的一個API調用需要一個名爲Tags的參數,該參數將包含逗號分隔的標籤,每個標籤都要保存到磁盤(我正在使用MongoDB + Mongoose)。通常,當我在API中保存到數據庫時,我會傳遞一個回調,並在保存回調之後繼續執行,但這裏有可變數量的對象以保存到磁盤,並且我不知道最簡單的方法來保存所有將這些標記添加到磁盤,然後保存之後引用它們的對象。任何人都可以建議一個乾淨的異步模式使用?謝謝!節點中許多異步任務的設計模式
4
A
回答
8
async是這些任務的好節點庫..並聯或串聯,並觸發後一個單一的回調
運行多個異步調用:
async.parallel([
function(){ ... },
function(){ ... }
], callback);
async.series([
function(){ ... },
function(){ ... }
]);
3
這是常見的代碼模式,我經常當使用我不想額外的依賴:
var tags = ['tag1', 'tag2', 'tag3'];
var wait = tags.length;
tags.forEach(function (tag) {
doAsyncJob(tag, done);
});
function done() {
if (--wait === 0) allDone();
}
此代碼將並行運行doAsyncJob(標籤,回調),關於陣列的每個項目,並調用allDo當每個工作完成時。如果你需要不斷地處理數據(每接一個地),這裏是另一種模式:
(function oneIteration() {
var item = tags.shift();
if (item) {
doAsyncJob(item, oneIteration);
} else {
allDone();
}
})();
相關問題
- 1. 異步Web服務設計模式
- 2. 設計模式:跨應用程序層管理異步任務
- 3. 異步任務模式在Java中
- 4. 基於任務的wcf異步模式
- 5. 異步塊的推薦設計模式?
- 6. 異步任務計時器
- 7. 如何將異步設計模式轉換爲同步模式?
- 8. 是否可以限制節點中的異步任務?
- 9. Silverlight異步設計模式問題
- 10. 異步任務從api的異步任務不運行異步
- 11. 異步模式 - 上一個任務完成時運行任務
- 12. 異步客戶端服務設計模式
- 13. 異步任務中的getInputStream任務
- 14. 圖節點優先級設計模式
- 15. 處理許多參數和業務規則的設計模式
- 16. 異步任務
- 17. 異步任務
- 18. 異步任務
- 19. 設計模式爲多步算法
- 20. 索引服務設計 - 同步/異步
- 21. ASP.NET中的異步任務
- 22. android中的異步任務
- 23. node.js中的異步任務
- 24. Android中的異步任務
- 25. c中的異步任務#
- 26. grunt.registerTask中的異步任務
- 27. 異步任務vs任務
- 28. 異步任務。哪個架構? (或zeroMQ中的模式)
- 29. Telerik中基於任務的異步模式支持
- 30. 切換異步任務同步任務
+1異步...有大量的工作流有選擇,瀑布方法是我的一個絕對最喜歡我工具腳本。 – Tracker1