2014-11-07 2 views
1

Я обещаю стороннюю библиотеку, которая не бросает типизированные ошибки, но вместо этого использует обратный вызов функции err, чтобы уведомить вызывающего абонента об ошибке. В этом случае «ошибка», которую сообщает библиотека, является просто анонимным объектом JS с несколькими четко определенными свойствами.Подклассификация OperationalError Bluebird

Bluebird обертывает это в OperationalError, что здорово - но было бы еще удобнее, если бы я мог подклассировать OperationalError и предоставить свой собственный четко определенный тип ошибки, который я мог бы определить. Например, LibraryXOperationalError - чтобы отличить ошибки от этой библиотеки от какой-либо другой ошибки, в каком-то глобальном промежуточном программном обеспечении обработки ошибок.

Возможно ли это? Я попытался придумать решение, используя концепцию «promisifier», но не добился успеха.

ответ

0

OperationalError это подклассы так же, как ошибка, вы можете получить ссылку от Promise.OperationalError

+0

Я знаю, что подклассы - то, что я действительно искал является крюк, чтобы сказать: Когда я Promisifiy библиотеки X, все распространяемые ошибки должны быть XOperationalError вместо OperationalErrors. – giannico

+0

Используйте пользовательский прошиватель – Esailija

+0

Да, это был маршрут, который я пытался взять (как упоминалось выше). Я продолжу этот путь. – giannico