$q.all
のように何をすればよいですか?同時に実行される約束の数は制限されていますか?
私の質問は、私が欲しいHow can I limit Q promise concurrency?
せいぜい5つのプロセスは、他の質問のための受け入れ答えはで動作するように包まれpromiseのために書かれたライブラリです時間
で生み出されていないだけのようですQ。 しかし、具体的には、Q
ではなくAngularの$q
のソリューションに興味があります。
背景:問題が解決されます。a)URL bを取得します)ファイルをダウンロード:
私は2つの段階にダウンロードするファイルの束を持っています。
ブラウザでは同時に取得できるファイル数が制限されているため、$q.all
という約束をそのまま使用すると、すべてのダウンロードがオフになります。 N のみがすぐに実行されます。 Chromeの、残りは遅れています。 (Max parallel http connections in a browser?を参照)
問題は、ブラウザが N + 1 番目のファイルのダウンロードを実行することにより、時間ので、URLが有効でなくなっている、URLが有効期限を持っているということではありません。
だから、私はあなたが再帰的な何かをすることができると思いthrottled.all(6, promises)
ではなく$q.all(promise)
悪いスタートではない、@マーカス、ありがとう。 あなたの例がサイズNのチャンクに分割されているので、常にNの約束を実行するのではなく、並行して並行しているわけではありません。 :) – Daryn