根据多个回调结果的结果执行最终回调
Executing a final callback depending on the outcome of multiple callback results
我正在处理一些代码,负责在许多不同的打印机上打印文档。对于每台打印机,调用"sendToPrinter"并传递文档、打印机对象和打印机使用的对象,以成功或失败回调。回调根据打印机类型同步/异步执行,这是我迄今为止的简化版本。
var x = 0;
var printDocument = function(document, printers) {
sendToPrinter(document, printers[x], ({
success: function() {
x±+;
if (x < printers.length) {
printDocument(document, printers);
}
},
failure: function() {
x++;
if (x < printers.length) {
printDocument(document, printers);
}
}
}));
};
除此之外,我还向包装函数传递了两个回调,一个是在任何打印作业成功时调用的,另一个是如果它们都不成功,这就是我正在努力解决的问题。
如何最好地跟踪各种打印作业的结果,以便在它们全部完成后可以执行正确的回调?
来自 jquery 的 Defferds/promise 与"when"结合使用,进行这样的同步:http://api.jquery.com/jQuery.when/
还有一些非jquery解决方案可以实现类似的解决方案。
相关文章:
- 将web服务回调的结果绑定到Javascript中的调用函数
- 返回循环中调用的回调结果的串联
- 从回调函数返回 AJAX 结果
- MongoDB:$addToSet Meteor中的重复结果回调
- node.js+MySQL;JSON结果-回调问题&没有响应客户端
- 如何通过回调访问nodejs中的mongodb计数结果
- 而循环和回调返回不同的结果
- 如何显示查询回调数据结果仅从开始
- Node.JS- R,Python大量计算识别回调何时返回并存储该结果
- 咖啡脚本化的 ajax 调用结果在实际成功时失败回调
- Meteor.js HTTP.get 获取 JSON 引号并解析结果似乎包含一个回调函数
- 如何使用异步并行将所有回调结果合并到最终回调中
- 根据多个回调结果的结果执行最终回调
- 我是否需要为每个具有等待结果回调的方法关闭
- 我想要一些在另一个回调函数内部的结果
- 使用 AJAX 回调更新挖空可观察数组会生成随机排序的结果
- 为什么我在 JavaScript 中的回调不适用于异步结果
- 为什么异步并行回调会返回意外结果
- 承诺链接:在next-then回调中使用上一个承诺的结果
- Node.js回调错误和结果澄清