2016-05-31 4 views
1

私はコードベースで自分自身を習熟しています、と私はどこでもこれを見ている:

$q.all([promise]).then(responseFunc);

をこれは私には意味がありません - 私は、ドキュメントを読んだ、と私は知りませんなぜ...それはすでに約束なので、代わりに使用されていない以下の

promise.then(responseFunc);

は、私が欠けているものはありますか?前者の後者に対する利点は何ですか?

+0

'responseFunc'はデータの配列のどこかで使用できますか?もしそうなら、利点はコードの再利用です。 – Phil

+1

逆に、未知の長さの別の配列からpromise配列を生成すると、すべてのケースで '$ q.all()'を使うのが簡単になります – charlietfl

+0

@charlietfl私は同意しますが、したがって、故意に '$ q.all([約束]); – Wulf

答えて

2

はい、これはちょっと変わっていますが、違いがあります。responseFuncは結果自体の代わりに結果の配列で呼び出されます。

これはおそらく、より良い[OK]をどちらか

promise.then(res => responseFunc([res])) 

または

promise.then(Array.of).then(responseFunc) 
1

として書かれるべきで、ここで私は(上記の私のコメントに基づいて)考えることができる唯一の利点だ

function responseFunc(arr) { 
    arr.forEach(data => { 
     // do stuff with data 
    }); 
} 

$q.all([promise1, promise2]).then(responseFunc); 
$q.all([promise]).then(responseFunc); 
関連する問題