Не могу понять одну вещь:
const req = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Подготовка данных...');
const product = {
name: 'TV',
price: 2000,
};
resolve(product);
}, 2000);
});
req.then(product => {
return new Promise((resolve, reject) => {
setTimeout(() => {
product.status = 'order';
resolve(product);
}, 2000);
});
}).then((data) => {
data.modify = true;
return data;
}).then(data => {
console.log(data);
});
Вопрос по коду:
1. req.then возвращает Promise:
req.then(product => {
return new Promise((resolve, reject) => {
setTimeout(() => {
product.status = 'order';
resolve(product);
}, 2000);
});
})
2. От этого then вызывается еще один then, который возвращает data, data в данном случае - объект:
.then((data) => {
data.modify = true;
return data;
})
3. Далее вызывается еще один then, но ведь предыдущий then возвращает объект, как можно вызвать then от объекта, если then это метод Promise:
.then(data => {
console.log(data);