Недавно я оказался в ситуации, которую очень сложно отлаживать. Представьте себе следующую очень простую ситуацию:NodeJS: Ошибки автолопа в Promise и отклонение вызова
function somePromise() {
return new Promise((resolve, reject) => {
SomeModule.someMethod();
AnotherModule.somePromise().then(resolve).catch(reject);
});
}
Resolve никогда не называли, но я не получаю сообщение об ошибке в консоли - это было трудно для отладки!
Оказывается, я забыл потребовать SomeModule
. После этого код работал должным образом.
Есть ли способ автоматически попробовать/поймать каждое обещание в моем коде с помощью обработчика ошибок? Я не хочу окружать тело своих обещаний блоком try/catch, чтобы легче находить такие ошибки в будущем.
Заранее благодарим за мнения!
Это было просто для упрощения, я делаю некоторую дополнительную обработку с результатами обещания, которое оправдывает «антипаттерн». – CrushedPixel
Нет, нет оправдания для антипаттера. Просто выполните '.then (processing)', где 'processing' - это функция, которая берет результаты обещания и вычисляет новое возвращаемое значение. Очень вероятно, что ошибки в обработке были фактической причиной, по которой вы не получили сообщений об ошибках. – Bergi
Они не были, проблема была в методе catch метода, использующего мой собственный метод обещания. Но спасибо за ваше мнение. – CrushedPixel