Одна из основных техник, необходимых для создания вещей на JavaScript, — это возможность легкого преобразования между функциями, использующими обратные вызовы, и функциями, возвращающими промисы.
Обратный звонок ➡ Обещание
Обещание ➡ Обратный звонок
Бонус: NodeJS util.promisify и util.callbackify
При преобразовании между стилем обратного вызова и промисами в NodeJS есть пара удобных инструментов, специально созданных для этой цели. Следует отметить, что сигнатура функции обратного вызова (error, data)
- util.promisify: https://nodejs.org/api/util.html#util_util_promisify_original
- util.callbackify: https://nodejs.org/api/util.html#util_util_callbackify_original
Какой из них лучше?
В зависимости от того, что делает ваш код более понятным.
Каждый из них представляет собой отдельный способ организации путей, по которым проходит ваш код. Обратные вызовы немного быстрее и с меньшими накладными расходами, но разница в производительности незначительна по сравнению с улучшением читабельности вашего кода. Естественно, производительность может быть важна в часто повторяющихся задачах, но по совпадению эти задачи, как правило, более читабельны, если они написаны в форме обратного вызова.
Исходно из: