2017-12-13 9 views
0

Node.jsアプリケーションでQを使用して約束を実装し、約束の連鎖があるようなものを持っています:Node.js - Qライブラリ、以前の()内で取得した値にアクセスするにはどうすればいいですか

service.execute() 
.then((result1) => { 
    return service2.execute(result1); 
}) 
.then((result2) => { 
    //Here I need result1 and result2!!! 
}); 

2番目の場合、前のブロックのresult1を使用する必要がありますが、使用できません。それにアクセスする方法はありますか?

注:同様の質問がありますが、Qライブラリの問題を解決するものはありません。あなたの内側の約束のオフ

答えて

1

チェーン:

service.execute().then((result1) => { 
    return service2.execute(result1).then((result2) => { 
     // Here I have access to both result1 and result2. 
     // Result1 via the closure, Result2 as an argument. 
    }); 
}); 

これはおそらくresult2を得ることがすでにresult1を持つ必要があること与えられ、それを行うための最善の方法です。彼らがそのようにお互いに依存していなかったら、Promise.allを使うことができます。

関連する問題