...しかし、私は、保留中の約束を延ばすことは最終的に崩壊すると考えています。
メモリが不足しているか、後続のコネクタが未処理の要求数を処理できないポイントに達したためです。しかし、はい、あなたは未解決のリクエストの数を絶えず増加させたくありません。
あり、あなたにこれを伝えるために、組み込みの何もないですが、あなたは簡単に単純に追跡することにより、傑出しているどのように多くの関連するものの知ることができます。
let outstanding = 0;
function track(p) {
++outstanding;
p.catch(e => e).then(() => {
--outstanding;
});
return p;
}
それからちょうどtrack
への呼び出しであなたのsequelize呼び出しをラップします:
track(calltoSequelize(/*...*/)).then(/*...*/);
あなたがfinally
(またはthe proposalからポリフィルを使用)と約束ライブラリを使用する場合、track
ができ:
let outstanding = 0;
function track(p) {
++outstanding;
return p.finally(() => {
--outstanding;
});
}
を拒否スローを再あなたは、配列内の彼らはすべてしているときに処理するためにpromise.allを使用することができ、そのようにそれらへの参照を保持すべきである必要があります終了しました。 – magreenberg
約束を数えないでください(あるいは約束することさえできます)。あなたが懸念している特定の挿入を数えます。 – Bergi