Ответ
Объект является 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