Tôi có một chức năng thực hiện một số thao tác sử dụng một mảng. Tôi muốn từ chối nó khi mảng trống.Từ chối lời hứa Có thể không được giải quyết Lỗi:
Như một ví dụ
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');
}
};
}
Khi từ chối hoạt động xảy ra tôi nhận được lỗi sau. Có thể không được giải quyết Lỗi: Không tìm thấy
Tuy nhiên, tôi có lệnh sau khi cuộc gọi đến hàm myArrayFunction() được thực hiện.
handlers.getArray = function (request, reply) {
myArrayFunction().then(
function (a) {
reply(a);
}).catch(reply(hapi.error.notFound('No array')));
};
Cách chính xác để từ chối lời hứa, bắt bị từ chối và phản hồi với khách hàng là gì?
Cảm ơn bạn. Tuy nhiên,
Việc sửa chữa là để vượt qua một chức năng để .catch như bạn đề nghị. Tùy chọn thứ hai tức là .catch (NotFoundError, reply); cung cấp cho tôi lỗi sau "Bộ lọc bắt phải là hàm tạo lỗi hoặc chức năng lọc" – juan
@juan bạn đã triển khai NotFoundError – Esailija
Có, tôi đã triển khai bộ lọc này. – juan