Cała oryginalna treść jest tworzona po ukraińsku. Nie wszystkie treści zostały jeszcze przetłumaczone. Niektóre posty mogą być dostępne tylko po ukraińsku.Dowiedz się więcej

Czym jest Promise w JavaScript i jak szybko zrozumieć jego istotę?

Okładka posta: Czym jest Promise w JavaScript i jak szybko zrozumieć jego istotę?
Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
Wyobraź sobie, że zamówiłeś kawę w kawiarni. Barista przyjmuje zamówienie, wydaje paragon i mówi: „Proszę chwilę poczekać”. Nie stoisz w miejscu, możesz usiąść przy stoliku, sprawdzić telefon lub odpowiedzieć na wiadomość. Kiedy kawa jest gotowa, barista woła cię – i otrzymujesz rezultat.
Promise w JavaScript działa tak samo:
  1. Uruchamiasz zapytanie (na przykład do serwera) i otrzymujesz obietnicę (Promise), że odpowiedź będzie później.
  2. JavaScript nie zatrzymuje wykonywania kodu – kontynuuje realizację innych zadań.
  3. Kiedy wynik jest gotowy, Promise informuje o tym, i możesz go przetworzyć.

Prosty przykład Promise

function makeCoffee() {
  return new Promise((resolve) => {
    console.log("Zamówienie przyjęte...");
    setTimeout(() => {
      resolve("☕ Gotowe! Oto twoja kawa.");
    }, 2000);
  });
}

console.log("Na razie przeglądam telefon...");
makeCoffee().then((message) => console.log(message));
Najpierw wykona się console.log("Na razie przeglądam telefon..."), ponieważ obietnica nie blokuje kodu.
Później po 2 sekundach pojawi się "☕ Gotowe! Oto twoja kawa.", kiedy obietnica zostanie zakończona.
promise_example_1.png
Jeśli coś pójdzie nie tak (na przykład kawa się skończy), możemy dodać .catch():
function makeCoffee() {
  return new Promise((resolve, reject) => {
    const coffeeReady = Math.random() > 0.5; // losowy sukces lub porażka

    console.log("Zamówienie przyjęte...");
    setTimeout(() => {
      if (coffeeReady) {
        resolve("☕ Gotowe! Oto twoja kawa.");
      } else {
        reject("❌ Przepraszam, kawa się skończyła.");
      }
    }, 2000);
  });
}

makeCoffee()
  .then((message) => console.log(message))
  .catch((error) => console.log(error));
To jak w prawdziwym życiu: jeśli nie ma kawy, barista przeprasza, a ty otrzymujesz odpowiedź o błędzie.
promise_example_2.png

Jak szybko się z tym zapoznać?

Spróbuj pisać obietnice samodzielnie: stwórz funkcję, która czeka 3 sekundy przed odpowiedzią, lub która losowo kończy się błędem. W ten sposób można szybko zrozumieć, jak działa asynchroniczny kod.
Ale zanim zaczniesz eksperymentować z obietnicami - musisz zrozumieć strukturę (resolve, reject, catch itp.). O tym jest osobny wpis.

Ten post nie ma jeszcze żadnych dodatków od autora.

Czym różnią się spec_helper.rb i rails_helper.rb w RSpec?
8 gru 13:53

Czym różnią się spec_helper.rb i rails_helper.rb w RSpec?

meme code
meme code@memecode
9 gru 14:50

[Fix] Nie ma takiego pliku ani katalogu @ rb_sysopen - tmp/pids/server.pid

meme code
meme code@memecode
Co należy wiedzieć, aby zbudować udaną karierę w IT jako freelancer
23 gru 16:03

Co należy wiedzieć, aby zbudować udaną karierę w IT jako freelancer

meme code
meme code@memecode
Wirtualny serwer chmurowy: czym jest i jaka jest jego specyfika
3 sty 10:58

Wirtualny serwer chmurowy: czym jest i jaka jest jego specyfika

meme code
meme code@memecode
[Fix] Heroku / SearchBox addon - błąd indeksowania "Klient nie może zweryfikować, że serwer to Elasticsearch"
31 sty 13:09

[Fix] Heroku / SearchBox addon - błąd indeksowania "Klient nie może zweryfikować, że serwer to Elasticsearch"

meme code
meme code@memecode
6 lut 15:31

Poprawka błędu [DEPRECATION] #adapters jest przestarzałe. Użyj zamiast tego #profiles. (Codecov / docile)

meme code
meme code@memecode
Struktura Promise (JavaScript) i jak z tym pracować
18 lut 14:33

Struktura Promise (JavaScript) i jak z tym pracować

meme code
meme code@memecode
Czym jest memoizacja (przykłady Ruby i Ruby on Rails)?
20 lut 18:16

Czym jest memoizacja (przykłady Ruby i Ruby on Rails)?

meme code
meme code@memecode
Czym jest debounce w JavaScript i dlaczego jest to ważne?
21 mar 16:39

Czym jest debounce w JavaScript i dlaczego jest to ważne?

meme code
meme code@memecode
Co to jest CFB (Cipher Feedback)?
21 mar 16:53

Co to jest CFB (Cipher Feedback)?

meme code
meme code@memecode
Co to jest XOR i jak to działa?
21 mar 17:05

Co to jest XOR i jak to działa?

meme code
meme code@memecode
Programowanie wbudowane: co to jest i od czego zacząć
24 mar 16:48

Programowanie wbudowane: co to jest i od czego zacząć

meme code
meme code@memecode