
1. Частина де ми говоримо про JS
1.1. Promise
1.1.1. Можливі стани
1.1.2. Як працює
1.1.3. Які є методи
1.1.3.1. then()
1.1.3.1.1. можна об'єднувати у ланцюжки послідовних асинхронних операцій
1.1.3.2. catch()
1.1.3.2.1. Завжди завершуйте свої ланцюжки промісів викликом методу catch()
1.1.3.3. finally()
1.1.3.3.1. Метод відмінно працює у випадках, коли потрібно прибрати лоадер зі сторінки чи кнопки. Він спрацює незалежно від результату промісу, тому можна уникнути дублювання коду.
1.1.3.3.2. він не приймає аргументів і не передає нічого далі
1.1.4. Ланцюжки викликів
1.1.4.1. Обробка помилок у ланцюжках методів
1.1.5. Створення асинхронної функції з промісом
1.1.5.1. 1. Створити функцію, яка виконуватиме асинхронну операцію
1.1.5.2. 2. Повернути з функції новий проміс
1.1.5.3. 3. Аргументом у конструктор передати функцію, яка виконує асинхронну операцію та переводить проміс у стан «успіх» чи «помилка» залежно від результату
1.1.6. Promise.all()
1.1.6.1. Іноді потрібно виконати кілька асинхронних функцій і дочекатися, поки всі виконаються або одна з них завершиться помилкою. І тому існує статичний метод Promise.all() (повертає проміс)
1.1.6.2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
1.1.7. Promise.allSettled()
1.1.7.1. Якщо потрібно дочекатися, поки кілька асинхронних функцій завершаться (без різниці, успішно або помилкою), використовуйте метод Promise.allSettled() (поверне проміс)
1.1.7.2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled
1.1.8. Promise.race
1.1.8.1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race
1.1.9. Promise.any
1.1.9.1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any
1.1.10. Q&A
1.2. fetch
1.2.1. Як працює
1.2.2. Cookies
1.2.2.1. ну ви знаєте
1.2.3. Обробка помилок
1.2.4. Деякі специфічні випадки
1.2.4.1. Відміна запиту
1.2.4.2. Завантаження з результатом прогресу
1.2.5. Q&A
1.3. JSON, .json
1.3.1. (мені щоночі сниться)
1.3.2. Як використовується
1.3.3. Що можна з ним робити
1.3.3.1. Перетворення в JSON
1.3.3.1.1. JSON.stringify()
1.3.3.2. Перетворення із JSON
1.3.3.2.1. JSON.parse()
1.3.4. Окремі моменти
1.3.4.1. JSON дуже зручно використовувати для отримання даних у мережі.
1.3.4.2. JSON підтримується більшістю мов програмування, тому в ньому зручно зберігати службову інформацію та налаштування.
1.3.4.3. JSON не підтримує коментарі, JavaScript-коментар // коментар призведе до помилки.
1.3.4.4. Альтернативні формати передачі даних - XML та YAML.
1.3.4.5. Найбільш відомим JSON-файлом є конфігураційний файл менеджера пакетів npm – package.json.
1.3.5. Q&A
2. Епілог
2.1. Екстра матеріали
2.1.1. https://www.programiz.com/javascript/promise
2.1.2. https://exploringjs.com/impatient-js/ch_promises.html
2.1.3. https://codeguida.com/post/509
2.1.4. https://levelup.gitconnected.com/understand-javascript-promises-by-building-a-promise-from-scratch-84c0fd855720
2.1.5. https://www.educative.io/answers/what-are-promises-in-javascript
2.1.6. https://www.digitalocean.com/community/tutorials/how-to-use-the-javascript-fetch-api-to-get-data
2.1.7. https://www.geeksforgeeks.org/javascript-fetch-method/
2.1.8. https://www.javascripttutorial.net/javascript-fetch-api/
2.1.9. https://www.freecodecamp.org/news/json-stringify-example-how-to-parse-a-json-object-with-javascript/
2.1.10. https://www.programiz.com/javascript/json
2.2. Домашнє завдання
2.3. Тизер-трейлер наступного вебінару
2.3.1. Q&A