Здравствуйте, подошел к изучению Promise, подскажите пожалуйста правильно ли я выстроил Promise и можно ли его записать как-нибудь короче? Может быть можно не возвращать каждый раз new Promise?
Код:
console.log('Запрос данных...');
const req = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Подготовка данных...');
const data = {
name: 'Personal computer',
model: 'MSI',
price: 120000,
weightKG: 10,
};
resolve(data);
}, 2000);
}).then((data) => {
return new Promise ((resolve, reject) => {
setTimeout(() => {
console.log('Обработка данных...');
data.status = 'order';
data.discount = '20%';
data.price -= 120000 * parseInt(data.discount, 10) / 100;
resolve(data);
}, 2000);
});
}).then((data) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('Выписка чека...');
data.check = `№${Math.floor(Math.random() * 100000000)}`;
resolve(data);
}, 2000);
});
}).then((data) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(`Данные получены:\n1.Наименование: ${data.name}\n2.Модель: ${data.model}\n3.Цена: ${data.price}\n4.Вес: ${data.weightKG}\n5.Статус: ${data.status}\n6.Скидка: ${data.discount}\n7.Чек: ${data.check}\n`);
resolve();
}, 2000);
});
}).then(() => {
setTimeout(() => {
console.log('...:::С новым годом!:::...');
}, 2000);
});