Я обещаю стороннюю библиотеку, которая не бросает типизированные ошибки, но вместо этого использует обратный вызов функции err, чтобы уведомить вызывающего абонента об ошибке. В этом случае «ошибка», которую сообщает библиотека, является просто анонимным объектом JS с несколькими четко определенными свойствами.Подклассификация OperationalError Bluebird
Bluebird обертывает это в OperationalError, что здорово - но было бы еще удобнее, если бы я мог подклассировать OperationalError и предоставить свой собственный четко определенный тип ошибки, который я мог бы определить. Например, LibraryXOperationalError - чтобы отличить ошибки от этой библиотеки от какой-либо другой ошибки, в каком-то глобальном промежуточном программном обеспечении обработки ошибок.
Возможно ли это? Я попытался придумать решение, используя концепцию «promisifier», но не добился успеха.
Я знаю, что подклассы - то, что я действительно искал является крюк, чтобы сказать: Когда я Promisifiy библиотеки X, все распространяемые ошибки должны быть XOperationalError вместо OperationalErrors. – giannico
Используйте пользовательский прошиватель – Esailija
Да, это был маршрут, который я пытался взять (как упоминалось выше). Я продолжу этот путь. – giannico