在执行另一个异步函数之前,只有条件为真时才能执行异步函数的最佳方法?

时间:2015-02-26 05:48:05

标签: javascript node.js asynchronous

我有一个异步函数,无论如何都应该被调用。 但是如果条件为真,我想在它之前运行另一个异步函数。 但是我的代码搞砸了。

if (needPrepare) {
    prepare(function(err, result) {
        mainJob(done);
    }
    return;
}
mainJob(done);

请注意,prepare和mainJob都是异步函数。 写这个的更好的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果你的代码在一个函数中,它应该没问题。在needPrepare == true return语句将阻止对mainJob()的第二次调用与prepare()同时执行的情况下。否则,使用else条件将涵盖两种可能的情况:

if (needPrepare) {
  prepare(function(err, result) {
    mainJob(done);
  }
}
else {
  mainJob(done);
}