1
如果function uploadLogs()
被拒絕,我預計拒絕將會冒泡並由function reject(reason)
處理,但它不會。爲什麼不?爲什麼拒絕不起泡?
爲function uploadLogs()
的拒絕處理程序處理的拒絕:
return EventCollector.persist().then(function persistResolve() {
return EventCollector.uploadLogs().then(function uploadLogsResolve() {
return closeApp();
}, function rejectionHandler() {
console.log("this rejection handler handles the event")
});
}, function reject(reason) {
return closeApp();
});
但如果我刪除拒絕處理,並期望拒絕冒泡並通過persist()
拒絕處理程序進行處理,由於某種原因沒有按」噸。
return EventCollector.persist().then(function persistResolve() {
return EventCollector.uploadLogs().then(function uploadLogsResolve() {
return closeApp();
});
}, function reject(reason) {
console.log("rejection is not handled when uploadLogs() fails");
return closeApp();
});
是不是承諾鏈接和拒絕冒泡應該這樣工作?
你可以給更多的上下文而不僅僅是說失敗。拒絕函數會在被調用時從uploadLogs()返回的promise被拒絕。 – M22an