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