Mam funkcję, która wykonuje pewną operację przy użyciu tablicy. Chciałbym go odrzucić, gdy tablica jest pusta.Przyrzeczenie obietnicy Prawdopodobnie nieobsługiwany Błąd:
Jako przykład
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');
}
};
}
Podczas operacji Odrzuć dzieje otrzymuję następujący błąd. Prawdopodobnie nieobsługiwany Błąd: Nie znaleziono
Jednak mam następujące haczyki, gdy wywołanie funkcji myArrayFunction() jest wykonane.
handlers.getArray = function (request, reply) {
myArrayFunction().then(
function (a) {
reply(a);
}).catch(reply(hapi.error.notFound('No array')));
};
Jaki byłby właściwy sposób na odrzucenie obietnicy, złapanie odrzucenia i udzielenie odpowiedzi klientowi?
Dziękuję.
Poprawka miała przekazać funkcję do .catch zgodnie z sugestią. Druga opcja tj. .catch (NotFoundError, reply); daje mi następujący błąd "Filtr przechwytywania musi być konstruktorem błędu lub funkcją filtru" – juan
@juan zaimplementowałeś NotFoundError – Esailija
Tak, został zaimplementowany. – juan