我正在学习节点并编写一个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