Что такое контракт thennable

Ответ

Объект является thenable (или "then-able"), если он имеет метод then(), что делает его совместимым с промисами. Это используется для асинхронных операций, где объект может быть обработан как промис, даже если он им не является.

Пример:

const thenable = {
  then(resolve, reject) {
    setTimeout(() => resolve('Done!'), 1000);
  }
};

Promise.resolve(thenable).then(console.log); // 'Done!' через 1 сек

Особенности:

  • Используется для интеграции с Promise API
  • Может быть как объектом, так и экземпляром класса
  • Позволяет создавать свои асинхронные абстракции
  • Важно для работы с async/await, так как они работают с thenable