0
我正在創建一個返回承諾的資源加載函數。該函數的錯誤日誌:如何沉默諾言拒絕並停止履行鏈?
function load(url) {
return request(..)
.catch(function(error) {
log(error);
throw error;
});
}
功能在各個連鎖店使用:
load(a).then(function(res1) {
load(b).then(function(res2) {
// res1 + res2
});
});
我希望能夠登錄資源異常並停止許諾鏈存在。如果我沉默它,鏈將導致then
,如果我再次拋出,它將變成未處理的拒絕。 通過節點的process
在全局範圍內捕獲這些文件不是一個選項,因爲平臺上的其他庫可能依賴於它。
可以拒絕被拒絕,並仍然阻止履行鏈繼續?
添加一個最終的catch來阻止'未處理的拒絕' - 儘管如我所見,未處理的拒絕對代碼執行沒有影響,因爲這是異步中的異常無論如何你要「停止」的代碼鏈 - 是否有任何理由需要防止這種無關緊要的控制檯錯誤?編輯:剛剛意識到,這是一個nodejs問題 - 對不起 –
unhandledRejection事件是有記錄錯誤,否則將被吞下;它並不是一個編程鉤子。你不必擔心取決於它的其他代碼,但你應該清理。該文檔說:「爲了解決這些故障,一個不可操作的.catch((=){})處理程序可能會附加到resource.loaded,這將阻止'unhandledRejection'事件被髮射。」_ – teppic