Пытаюсь обернуть callback функцию в функцию возвращающую промис.
Не могу понять почему промис не срабатывает.
Может не правильно вызываю?
При выполнении кода не попадаем в console.log
const bb = (callback, x, y) => setTimeout(() => callback(null, x + y), 200)
function promisify (f) {
return function (...args) { // возвращает функцию-обёртку
return new Promise((resolve, reject) => {
function callback (err, result) { // специальный колбэк для f
if (err) {
return reject(err)
} else {
resolve(result)
}
}
args.push(callback) // добавляем колбэк в конец аргументов f
f.call(this, ...args) // вызываем оригинальную функцию
})
}
};
const callback = (err, data) => err || data
const stat = promisify(bb);
stat(callback, 1, 2).then(function (stats) {
console.log("Got stats", stats);
}).catch(function (err) {
console.error("Yikes!", err);
});