Mi sento come se stessi andando un po 'pazzo, ma Angular sembra lanciare un errore per una promessa anche se ho un catch
definito. Invia l'errore alla console, quindi consente di eseguire catch
.Errore di registri angolari alla console prima di aumentare promise.catch
Ecco un super-simple fiddle
Il codice di prova:
$q.when(1)
.then(function() {
throw new Error("test");
}).catch(function(error) {
console.log('error caught', error);
});
La console risultante
(sporco bugiardo!)
Ecco a fiddle showing what I expect to happen: il catch
è sollevato, e nessun altro errore viene registrato nella console. Non sono riuscito a configurare qualcosa, o Angular implementa una specifica di promessa non corretta?
Questa è la risposta corretta, ma è preferibile un decoratore per sovrascrivere l'intero servizio. Vedi http://stackoverflow.com/questions/13595469/how-to-override-exceptionhandler-implementation – dnc253
Ma l'eccezione non arriva nemmeno a questo punto? Non dovrebbe essere stato gestito dal 'catch'? –
@DavidGrinberg Il "catch" si verifica dopo la gestione che avviene in questo metodo. Ecco perché appare prima nella console – Tyrsius