Если вы хотите знать, что вы должны делать, когда ваша функция (которая реализует Q) должна делать, когда представлен неверный ввод, который может быть обнаружен синхронно, я посмотрел исходный код для Q, чтобы увидеть, что сделал Q.
Вот пример.
if (fallback === undefined) {
fallback = function (op) {
return reject("Promise does not support operation: " + op);
};
}
Когда Q представлен с неверным вводом, Q вызывает распознаватель с объектом отклонения.Поэтому вы могли бы оправдаться, если бы ваш API вел себя аналогично, а не пытался изменить поведение базовой библиотеки.
Плюс, взгляните на это с точки зрения любого, кто использует ваш API.Они хотят разработать и поддерживать два пути кода для обработки исключений или один?