我有一个函数需要传递给它的三个先前承诺的结果。一个是线性相关的,另外两个可以同时运行。我想使用 q.all 来解决三个承诺,然后使用 .spread 将结果传递给第四个。但是我的代码不起作用。任何帮助,将不胜感激。
var p1 = doWork(data);
var p2 = p1.then(doMoreWork);
var p3 = doConcurrentWork(data);
return q.all([p1,p2,p3]).spread(funcWith3params)
.fail(function(err) {
console.log(err):
}
我可以在 node-inspector 中跟踪代码,并看到前 3 个 Promise 正在被调用。但是,没有调用 .spread 调用的函数。关于为什么的任何线索?.fail 也没有被击中。