JavaScript Promise: обіцянка майбутнього!

🔹 Що таке Promise?

Promise в JavaScript — це об'єкт, який обіцяє повернути результат асинхронної (asynchronous) операції в майбутньому. Зазвичай його використовують для API викликів, операцій з базами даних або завдань, які не завершуються миттєво.

🔹 Три стани Promise:

Promise може мати три стани:

  1. Pending (в очікуванні): коли Promise створено, але результат ще не отримано.
  2. Fulfilled (виконано): коли Promise успішно повертає результат.
  3. Rejected (відхилено): коли Promise не вдалося виконати.

🔹 Як працює Promise?

Щоб створити Promise, використовують конструктор new Promise().

const myPromise = new Promise((resolve, reject) => {  
 let success = true;  
 if (success) {  
 resolve("Дані завантажено успішно! ✅");  
 } else {  
 reject("Помилка при завантаженні даних! ❌");  
 }  
});

Тут resolve() викликається, коли операція успішна, а reject() — коли виникає помилка.

🔹 Використання Promise

Для отримання даних з Promise використовуються методи .then() та .catch().

myPromise  
 .then(result => {  
 console.log("Успіх:", result);  
 })  
 .catch(error => {  
 console.log("Помилка:", error);  
 });

🔹 Ланцюгування Promise

Використовуючи ланцюгування Promise, можна виконувати асинхронні завдання одне за одним.

function fetchData() {  
 return new Promise((resolve, reject) => {  
 setTimeout(() => {  
 resolve("Дані користувача завантажено! 🏆");  
 }, 2000);  
 });  
}
fetchData()  
 .then(response => {  
 console.log(response);  
 return "Обробка даних користувача...";  
 })  
 .then(status => {  
 console.log(status);  
 })  
 .catch(error => {  
 console.error("Помилка:", error);  
 });

🔹 Обробка Promise через Async/Await

З ES6 використання async/await значно спрощує обробку Promise.

async function loadData() {  
 try {  
 let result = await fetchData();  
 console.log(result);  
 console.log("Обробка завершена! ✅");  
 } catch (error) {  
 console.error("Помилка:", error);  
 }  
}  

loadData();

🔹 Підсумок

Promise в JavaScript спрощує асинхронне програмування і робить його ефективним. Використання .then(), .catch(), chaining і async/await дозволяє набагато зручніше керувати асинхронними операціями. 🎯

Якщо хочеш дізнатися більше про асинхронне програмування, можеш також вивчити Promise.all() та Promise.race()! 🚀

Перекладено з: JavaScript Promise: ভবিষ্যতের প্রতিশ্রুতি!

Leave a Reply

Your email address will not be published. Required fields are marked *