Ich habe eine Funktion, die einige Operationen mit einem Array. Ich möchte es ablehnen, wenn das Array leer ist.Versprechen ablehnen Möglicherweise nicht behandelt Fehler:
Als Beispiel
myArrayFunction(){
return new Promise(function (resolve, reject) {
var a = new Array();
//some operation with a
if(a.length > 0){
resolve(a);
}else{
reject('Not found');
}
};
}
Wenn die Operation ablehnen geschieht ich die folgende Fehlermeldung erhalten. Möglicherweise nicht behandelt Fehler: Nicht gefunden
Allerdings habe ich den folgenden Haken, wenn der Aufruf von myArrayFunction() gemacht wird.
handlers.getArray = function (request, reply) {
myArrayFunction().then(
function (a) {
reply(a);
}).catch(reply(hapi.error.notFound('No array')));
};
Was wäre der richtige Weg, um das Versprechen abzulehnen, die Ablehnung zu fangen und dem Kunden zu antworten?
Vielen Dank.
Die Lösung bestand darin, eine Funktion an .catch zu übergeben, wie Sie es vorgeschlagen haben. Die zweite Option, d. H. .Catch (NotFoundError, Antwort); gibt mir den folgenden Fehler "Ein Catch-Filter muss ein Fehler Konstruktor oder eine Filterfunktion sein" – juan
@juan Sie NotFoundError implementieren – Esailija
Ja, ich es wurde implementiert. – juan