Łączenie obietnic (Promise Chaining) w JavaScript

Łączenie obietnic (Promise Chaining) to technika w JavaScript, która pozwala na wykonywanie sekwencyjnych operacji asynchronicznych w sposób uporządkowany i czytelny. Dzięki temu, możemy uniknąć tzw. “callback hell”, czyli zagnieżdżania wielu funkcji zwrotnych, co czyni kod trudnym do czytania i utrzymania. Promise chaining pozwala na wykonywanie operacji asynchronicznych jeden po drugim, gdzie wynik jednej operacji jest wykorzystywany jako dane wejściowe dla następnej.

Przykład użycia łączenia obietnic w JavaScript

W tym przykładzie zobaczymy, jak można wykorzystać łączenie obietnic do wykonania serii zapytań do API, gdzie każde kolejne zapytanie zależy od wyniku poprzedniego.

Struktura kodu HTML i JavaScript

Załóżmy, że mamy prostą stronę HTML z przyciskiem, który inicjuje łańcuch obietnic po kliknięciu.

<!DOCTYPE html>
<html>
<head>
    <title>Promise Chaining Example</title>
</head>
<body>
    <button id="startButton">Rozpocznij łańcuch obietnic</button>

    <script>
        // Funkcja symulująca zapytanie do API, 
        // która zwraca obietnicę
        function fakeApiRequest(data) {
            return new Promise((resolve, reject) => {
                setTimeout(() => resolve(`Odpowiedź z ${data}`), 1000);
            });
        }

        // Funkcja obsługująca kliknięcie przycisku
        document.getElementById('startButton')
         .addEventListener('click', () => {
            fakeApiRequest('API 1')
                .then(response => {
                    console.log(response);
                    return fakeApiRequest('API 2 z danych z API 1');
                })
                .then(response => {
                    console.log(response);
                    return fakeApiRequest('API 3 z danych z API 2');
                })
                .then(finalResponse => {
                    console.log('Ostateczna odpowiedź:', finalResponse);
                })
                .catch(error => {
                    console.error('Błąd:', error);
                });
        });
    </script>
</body>
</html>

W powyższym przykładzie, fakeApiRequest jest funkcją, która symuluje zapytanie do API i zwraca obietnicę. Funkcja ta przyjmuje jako argument dane wejściowe i po krótkim opóźnieniu zwraca odpowiedź. W naszym łańcuchu obietnic, każde wywołanie fakeApiRequest zależy od wyniku poprzedniego wywołania.

Podsumowanie

Łączenie obietnic w JavaScript jest potężną techniką do zarządzania sekwencyjnymi operacjami asynchronicznymi. Pozwala na pisanie kodu w sposób liniowy, co znacząco poprawia czytelność i ułatwia zarządzanie złożonymi operacjami asynchronicznymi. Dzięki promise chaining, można uniknąć zagnieżdżenia funkcji zwrotnych i związanych z tym problemów, takich jak callback hell. Jest to niezwykle użyteczne w nowoczesnych aplikacjach webowych, gdzie często mamy do czynienia z wieloma zależnymi od siebie zapytaniami do API lub innymi operacjami asynchronicznymi.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top