Nested Q.all nodejs

Nested Q.all nodejs

本文关键字:nodejs all Nested      更新时间:2023-09-26

我正在研究Nodejs的promise。我有一个关于两个嵌套Q.all.的情况的问题

Q.all(promises1)
   .then(function(res1) {
        var promises2 = <METHOD THAT USE THE RES1>
        Q.all(promises2)
            .then(function(re2) {
                  ...
            })
   })    

问题是我需要第一个问题的结果。第二个问题的答案是all。promises1是多个保存函数,我需要在promises2中使用的多个函数中保存的项的objectId。我正在研究没有嵌套函数的promise,我的问题是如何解决这个嵌套?

您可以从then函数中返回一个promise来继续链。我还想注意的是,内置的Promise API是由节点支持的。

Promise.all(promises1)
    .then(res => {
        let promises2 = [];
        return Promise.all(promises2);
    })
    .then(res => {
    });

我该如何解决这个问题?

一如既往:-)您需要return来自then回调的promise,在本例中是您通过第二个Q.all调用获得的promise。然后您可以将第二次then调用链接到外部promise:

Q.all(promises1)
.then(function(res1) {
    var promises2 = … // method that uses `res1`
    return Q.all(promises2)
//  ^^^^^^
}).then(function(res2) {
    …
});