Приведите пример ситуации, в которой при promisify необходимо сохранять контекст `this`.

Контекст нужен, если callback-метод читает поля своего объекта, например this.prefix или this.client; потеря receiver ломает работу после promisify.

Короткий ответ

Что ответить на собеседовании

Контекст нужен, если 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 другого формата адаптер надо изменить.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее