Wenn function uploadLogs()
abgelehnt wird, erwarte ich, dass die Zurückweisung aufbläht und von function reject(reason)
gehandhabt wird, tut es aber nicht. Warum nicht?Warum springt die Ablehnung nicht auf?
Eine Ablehnung Handler für function uploadLogs()
nimmt die Ablehnung:
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();
});
Aber wenn ich die Ablehnung Handler entfernen und die Ablehnung zu sprudeln erwarten und durch die Ablehnung Handler von persist()
behandelt werden, denn es ist aus irgendeinem Grund doesn‘ t.
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();
});
Ist nicht Versprechen Verkettung und Zurückweisung sprudeln sollen auf diese Weise funktionieren?
Können Sie mehr Kontext geben, als nur sagen, fehlschlägt. Die Funktion reject wird aufgerufen, wenn das Versprechen, das von uploadLogs() zurückgegeben wird, zurückgewiesen wird. – M22an