Ho una funzione che esegue un'operazione utilizzando un array. Mi piacerebbe rifiutarlo quando l'array è vuoto.Promessa di rifiuto Possibile non gestita Errore:
Come esempio
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');
}
};
}
Quando l'operazione di scarto accade ottengo il seguente errore. Eventualmente non gestito Errore: non trovato
Tuttavia, ho il seguente problema quando viene effettuata la chiamata a myArrayFunction().
handlers.getArray = function (request, reply) {
myArrayFunction().then(
function (a) {
reply(a);
}).catch(reply(hapi.error.notFound('No array')));
};
Quale sarebbe il modo corretto di rifiutare la promessa, prendere il rifiuto e rispondere al cliente?
Grazie.
La correzione era passare una funzione a .catch come suggerito. La seconda opzione i.e. .catch (NotFoundError, reply); mi dà il seguente errore "Un filtro catch deve essere un costruttore di errori o una funzione filtro" – juan
@juan hai implementato NotFoundError – Esailija
Sì, è stato implementato. – juan