2016-05-18 2 views
1

私はNodejsの約束を勉強しています。 Qallを入れ子にした2つの状況に関する質問があります。Nested Q.all nodejs

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

問題は、最初のQ.allの結果が2番目に必要なことです。 promises1は複数の保存関数であり、私はpromises2で使用する複数の関数に保存された項目のobjectIdが必要です。 入れ子関数を持たないという約束を勉強しています。私の疑問はどうやってこのネストを解決できますか?

+0

私は目標を理解していません。 res1はここのスコープにありますよね?これらの関数をトップレベルで宣言し、ネストされている場合は参照することができます。 – Casey

+0

申し訳ありません私は明確ではありませんでした。私は質問を編集します。 –

答えて

-1

どのように私はこの巣を解決することができますか?あなたはこのような場合には、あなたが二Q.allコールで得たものをthenコールバックからの約束をreturnする必要があり、その後、あなたは外の約束にチェーン2番目のthen呼び出しをすることができます:-)

As always

0

連鎖を続行するには、関数内から約束を返すことができます。また、組み込みのPromise APIはノードによってサポートされていることにも注意したいと思います。

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

    });