關於如何處理錯誤時使用catch
使用promise.all()
有很多信息,但我試圖實現的是處理這個promise.all()
內部的一個承諾。我試圖這樣做的原因是因爲我試圖在控制檯中設置一個自定義進度條,每次解決承諾時都需要調用tick方法。句柄promise單獨解決promise.all()
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我仍然試圖將這個功能粘貼到原始功能中,儘管我沒有如此快速地完成所有功能。 –