Мне нужно написать функцию, которая возвращает обещание, где сначала я вызываю синхронную функцию A(), которая возвращает некоторый результат. Затем верните функцию B (результат), где B - это обетование, которое принимает результат A(). Если какая-либо из функций не работает, я хочу, чтобы одна и та же функция ошибки C (ошибка) вызывалась, где C является обещанием. Каков наилучший способ написать это. Это то, что я имею, но думаю, что есть очевидный способ мне не хватаетПопробуйте и поймайте обещание
function() {
try {
var result = A();
return B(result)
.catch(function(error) {
return C(error);
});
}
catch(error) {
return C(error);
}
}
Это кажется неправильным комбинируя синхронную попытку и поймать с обещанием .catch, а также неправильно есть два разных мест, мне нужно вызвать C (ошибка) ,
A() выдает ошибку, а не возвращает код ошибки.
Вы знаете разницу между попыткой/уловкой и функцией улова Promise? Вы на самом деле пытаетесь обрабатывать исключения/ошибки, как это делает try/catch, или пытаетесь ли вы что-то делать, если обещание разрешает/отклоняет как улов, а затем выполняет функции Promise? – AUsr19532
Когда вы говорите, что любая функция не работает, что это значит для 'A()'? Возвращает ли 'A' код ошибки, который указывает на отказ? Вызывает ли это исключение? Какой тип сбоя вы пытаетесь обнаружить? Пожалуйста, будьте более конкретными, чтобы мы могли предложить лучший ответ. Кроме того, вы говорите, что вы всегда вызываете 'C (error)', но C - это обещание. Это утверждение имеет смысл. Вы не выполняете такое обещание. Что именно вы подразумеваете под этим. Вы имеете в виду, что 'C' - это функция, которую вы хотите вызвать, если есть ошибка? – jfriend00
Я имел в виду, что C - это функция, которая возвращает обещание. – user2802557