2013-10-17 71 views
0

我正在处理一些代码,负责在多个不同的打印机上打印文档。对于每台打印机,都会调用“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); 
      } 
     } 
    })); 
}; 

除了这个我有两个回调到包装功能部件,其中一个是被称为如果任何打印作业是成功的,其他的,如果他们没有获得通过,这是林挣扎用。

如何最好地跟踪各种打印作业的结果,以便在完成所有打印作业后,我可以执行正确的回调?

+1

'x±+'?答案似乎是*承诺*。 – bfavaretto

+1

使用Async.js(适用于浏览器).https://github.com/caolan/async – Gireesh

+0

这些工作是否有超时? –

回答