Ich habe ein Problem mit einem Fehler in einem Bluebird Versprechen zu werfen. Nehmen Sie den folgenden Code:Bluebird Promises und Domains
var Promise = require('bluebird');
var domain = require('domain');
var problem = function() {
return new Promise(function(resolve, reject){
reject(new Error('Oops!'));
});
};
domain.create()
.on('error', function(e){
console.log("Caught Error " + e.message)
process.exit(1);
})
.run(function() {
problem().done();
});
Ich würde erwarten, Caught Error Oops!
in der Konsole zu sehen. Es scheint jedoch, dass der Fehler nicht innerhalb der Domäne gefangen ist, und ich sehe einen schwerwiegenden Fehler und Stack-Trace in der Konsole.
Weiß jemand warum?
Domänen sind veraltet, Sie sollten sie nicht verwenden. –
Das ist nicht sehr hilfreich. Ja, ich verstehe, dass Domains in der Zukunft ersetzt werden können, aber heute, fast 2 Jahre nach der Bitte, sie abzulehnen, sind sie immer noch im Kern. Domains sind noch ausstehend, da noch nichts vorhanden ist, um die sehr spezifische Funktionalität zu ersetzen, die sie bereitstellen. –
Dies ist ein Problem mit Bluebird, verspricht von der Q-Bibliothek Funktion wie erwartet. –