如何使用javascript链接多个任务?

时间:2013-09-05 05:02:29

标签: javascript node.js

我有一些异步任务要做,比如task1,task2,task3,...,它们的关系如下图所示。

enter image description here

这是一个有向无环图,所以我可以使用拓扑排序来找出一条可能的执行路径。

但对于人类来说,这仍然是非常重要的任务,也许就是这样。

task7.start().done(check_if_5_is_done_then_start_11, check_if_3_is_done_then_start_8);
task5.start().done(check_if_7_is_done_then_start_11);
task3.start().done(check_if_7_is_doen_then_start_8, check_if_11_is_doen_then_start_10);

....

我更喜欢更优雅的解决方案,例如:

var Tasks = new Tasks({
  task7:  [func7,  []],
  task11: [func11, ["task7", "task5"]],
  task5:  [func5, []],
  task8:  [func8, ["task3"]]
  ...
});

Tasks.start().alldone(function () { // done  });

1 个答案:

答案 0 :(得分:1)

看起来几乎就是针对用例async.auto设计的。