Node.js основи

Асинхронний JavaScript: Promises та async/await

📖 Теорія

JavaScript — однопотоковий, тому асинхронність критична.

💡 Приклад коду
Вивід:

                            
📝 ЗАВДАННЯ (3)
1.
Завдання 1: Promise.resolve та ланцюжок
10 XP
Створи Promise що вирішується з числом 5. Потім через .then() помнож на 3, потім додай 10. Виведи фінальний результат.
💡 Підказка: Promise.resolve(5).then(x => x * 3).then(x => x + 10).then(console.log)
🔓 Розв'язок:
Promise.resolve(5)
  .then(x => x * 3)
  .then(x => x + 10)
  .then(result => console.log(result));
Вивід:

                                

2.
Завдання 2: async/await з fs.promises
20 XP
Напиши async функцію що:
1. Записує 'async/await test' у '/tmp/async_test.txt'
2. Читає файл назад
3. Виводить вміст
Виклич функцію.
💡 Підказка: const fsPromises = require('fs').promises; потім await fsPromises.writeFile та readFile
🔓 Розв'язок:
const fsPromises = require('fs').promises;
async function run() {
  await fsPromises.writeFile('/tmp/async_test.txt', 'async/await test', 'utf8');
  const content = await fsPromises.readFile('/tmp/async_test.txt', 'utf8');
  console.log(content);
}
run();
Вивід:

                                

3.
Завдання 3: Promise.all
30 XP
Симулюй отримання даних від трьох «сервісів» через Promise.resolve:
- userService: {id: 1, name: 'Аліна'}
- ordersService: [101, 102, 103]
- settingsService: {theme: 'dark'}

Використай Promise.all і виведи кожен результат окремо.
💡 Підказка: Promise.all([p1, p2, p3]).then(([user, orders, settings]) => {...})
🔓 Розв'язок:
const userService = Promise.resolve({id: 1, name: 'Аліна'});
const ordersService = Promise.resolve([101, 102, 103]);
const settingsService = Promise.resolve({theme: 'dark'});
Promise.all([userService, ordersService, settingsService])
  .then(([user, orders, settings]) => {
    console.log(user.name);
    console.log(orders);
    console.log(settings.theme);
  });
Вивід: