我有一个异步函数,无论如何都应该被调用。 但是如果条件为真,我想在它之前运行另一个异步函数。 但是我的代码搞砸了。
if (needPrepare) {
prepare(function(err, result) {
mainJob(done);
}
return;
}
mainJob(done);
请注意,prepare和mainJob都是异步函数。 写这个的更好的方法是什么?
答案 0 :(得分:1)
如果你的代码在一个函数中,它应该没问题。在needPrepare == true
return
语句将阻止对mainJob()
的第二次调用与prepare()
同时执行的情况下。否则,使用else条件将涵盖两种可能的情况:
if (needPrepare) {
prepare(function(err, result) {
mainJob(done);
}
}
else {
mainJob(done);
}