将Q.all放入Q.all中是否正确?

时间:2018-01-25 17:17:31

标签: javascript node.js q

我的代码如下:

let tasks = [];
tasks.push(MyModel.update({ _id: 50 }, { Test: 5000 }).exec());
return Q.all([
   myPromise,
   Q.all(dbTasks)
]);

将Q.all放入Q.all中是否正确? dbTasks之后的承诺是否会在myPromise后完全解决?

2 个答案:

答案 0 :(得分:0)

您可以使用spread元素将内部数组扩展为外部数组

Promise.all([myPromise, ...dbTasks])

答案 1 :(得分:0)

  

将Q.all放入Q.all中是否正确?

是的,那应该没问题。 Q.all将一系列承诺作为非承诺,Q.all返回承诺。所以你很高兴。分辨率值为长度为2的数组,其解析值为myPromise,解析后的值为dbTasks

  

dbTasks中的promise是否会在myPromise之后完全解决?

只要他们解决,他们就会得到解决。 Q.all无法控制。

Q.allmyPromise中的所有承诺都已解决时,外部dbTasks生成的承诺将解决,或者只要这些承诺拒绝,它就会拒绝。