Проверяет умение преобразовывать асинхронный код с колбэками в современный Promise-стиль, что необходимо для работы с устаревшими API и библиотеками.
Error-first callback — это соглашение в Node.js, где первый аргумент колбэка зарезервирован для ошибки, а второй — для результата. Например, fs.readFile('file.txt', (err, data) => {...}). Оборачивание в Promise упрощает обработку асинхронного кода, позволяя использовать async/await и избегать вложенных колбэков.
Создаётся функция-обёртка, которая возвращает новый Promise. Внутри Promise вызывается исходная функция с колбэком. Если в колбэке первый аргумент (ошибка) не равен null/undefined, вызывается reject, иначе — resolve с результатом.
const fs = require('fs');
function readFilePromise(path) {
return new Promise((resolve, reject) => {
fs.readFile(path, 'utf8', (err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
}
// Использование
async function main() {
try {
const content = await readFilePromise('example.txt');
console.log(content);
} catch (error) {
console.error('Ошибка:', error);
}
}В Node.js есть встроенная функция util.promisify, которая делает то же самое для любой функции с error-first callback:
const { promisify } = require('util');
const readFile = promisify(fs.readFile);
const data = await readFile('file.txt', 'utf8');Это удобно для массового преобразования методов.
Вывод: Оборачивание error-first callback в Promise — стандартный приём для интеграции старого кода с современными асинхронными паттернами. Используйте util.promisify для быстрой конвертации или пишите свою обёртку для полного контроля.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию