Контекст нужен, если callback-метод читает поля своего объекта, например this.prefix или this.client; потеря receiver ломает работу после promisify.
Приведите пример ситуации, в которой при promisify необходимо сохранять контекст `this`.
Контекст нужен, если callback-метод читает поля своего объекта, например this.prefix или this.client; потеря receiver ломает работу после promisify.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Контекст нужен, если callback-метод читает поля своего объекта, например this.prefix или this.client; потеря receiver ломает работу после promisify.
Для error-first callback можно сохранить объект явно:
function promisifyMethod(object, method) {
return (...args) => new Promise((resolve, reject) => {
method.call(object, ...args, (error, value) => {
if (error) reject(error); else resolve(value);
});
});
}
Контракт предполагает один callback с одной итоговой величиной. Метод берётся из доверенного объекта; для нескольких success-аргументов или callback другого формата адаптер надо изменить.