promise.all()
を使用しているときにエラーを処理する方法については多くの情報がありますが、私が達成しようとしているのは、このpromise.all()
の中の約束を解決することです。私がこれをやろうとしている理由は、コンソールにカスタムプログレスバーを設定しようとしているため、約束が解決されるたびにtickメソッドを呼び出す必要があるからです。ハンドルの約束はpromise.all()でindvidually解決します
this.getNewSources = function() {
var bar = new ProgressBar(':bar', {total: this.getSourceMap().size});
var timer = setInterval(function() {
bar.tick();
if (bar.complete) {
console.log('\ncomplete\n');
clearInterval(timer);
}
}, 100);
let promiseArr = [];
for (let x of this.getSourceMap().values()) {
promiseArr.push(this.requestArticles(x.getName(), x.getCat(), x.getKey()));
}
return Promise.all(promiseArr).then(() => {
console.log("Articles loaded this round: " + this.articles.size);
console.log('all sources updated');
this.loadedArticles = true;
console.log(this.articleCount);
console.log(this.articles.size);
}).catch(e => {
console.log(e);
});
};
私は、個々の約束が解決したときにbar.tick()
メソッドを呼び出すことができるという方法を把握しようとしています。
@ T.J.Crowderお返事ありがとうございました、私はあなたが元々説明したことなしにその答えを得られないと確信しています。 –
私の喜び。 :-)あなたに何を教えてください:私は説明と共に新しい答えを投稿します。あなたの答えを投稿するときに必要なものを掴んで、完了したら私を削除するように私にpingしてください。私はただのアシストをしてうれしいです。 :-) –
いいアイデアのように聞こえるよ! :D私はそれをすべて理解してしまうほど速くはないが、これを元の関数に接着しようとしている。 –