2016-06-25 2 views
0

コードをきれいに保ち、-paramFromAを& paramFromBにフェッチすることはできますか? )さんは、私がnode.js チェーンからparamsを取得し、リニアにしてください。

var a = helper.getAccountPromise(tokens); 
var b = a.then(helper.getFundingPromise) 
var c = helper.createCampignPromise(a, b)) 

.... 
createCapmaignPromise(a,b){ 
    // do I wait for a here? a.then ? 
    // how do I extract the response here - console.log(a.response) ? 

// same for b 

}

+0

これはうまくいくのですか?はい、それは動作します。 'then'ハンドラは新しい約束オブジェクトを返します。 – thefourtheye

+0

paramFromA&paramFromBは意味がありません:)(paramFromAは定義されていません...)実際にはAの結果とBの結果から値を抽出するにはどうすればよいですか?これは私が把握することができないものです – user1025852

+0

これらの約束を 'createCampignPromise'に渡し、両方が解決すると、値を取得して使用します – thefourtheye

答えて

0

.then(やるとしようが、常に1つの引数、と呼ばれる: ここですべての機能が

var a = helper.getAccountPromise(tokens); 
    var b = a.then(helper.getFundingPromise) 
    var c = b.then(helper.createCampignPromise(paramFromA, paramFromB)) 

UPDATE新しい約束を返します約束が解決された価値

私はparamFromAとparamFromBはPromises "a"と "b"からの戻り値を意味すると仮定しているので、チェーン "c"はparamFromBにしかアクセスできません。

あなたは可能性が青い鳥のような約束ライブラリで するvar C = Promise.all(a、b)は.then(/ * 2つの項目の配列は、ここで1つの引数として渡されます* /) 、あなたが.spread()メソッドを持っています.then()の代わりにPromise.all()から返された配列を2つの引数に渡しますが、ES6 ... spread演算子を使用することもできます。

約束事を実行してaからcへの戻り値を渡す必要がある場合は、bからそれを渡すか、それを.then()のクロージャの外側の変数に格納する必要があります。

関連する問題