Я думаю, вы слишком обдумываете, обещание должно resolve
или reject
, они не имеют встроенной поддержки обработки ошибок. Однако в этом случае сообщение об ошибке, вероятно, является хорошей вещью, так как оно говорит вам, что аргументы (surveyDistance
) не соответствуют вашим ожиданиям. Я не буду комментировать хорошие или плохие практики, потому что я не знаю вашу кодовую базу, но вы должны без колебаний использовать try / catch, если на самом деле нет чего-то, что могло бы go ошибаться (по моему опыту).
export function fun1(): Promise < survayResult > {
return new Promise((resolve, reject) => {
try {
//..........
//..........
surveyDistance.forEach((result) => {
//
})
if(condition) {
reject(new Error("something went erong"));
return
}
let totalDistance = surveyDistance[0].distance;
// ...
//...
resolve("with some data");
} catch (e) {
reject("Your error message:" + e);
}
})
}