Node.jsPytanie 08 z 26
Promise
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Promise reprezentuje przyszły wynik operacji. Jest w stanie pending, a potem fulfilled albo rejected. Po rozstrzygnięciu nie zmienia już wyniku.
JavaScript
const delay = ms => new Promise(resolve => {
setTimeout(resolve, ms);
});
delay(200).then(() => console.log('Gotowe'));Doprecyzowanie: funkcja przekazana do konstruktora Promise uruchamia się synchronicznie. Handlery .then() wykonują się jako microtaski.
Pułapka: nie opakowuję w new Promise funkcji, która już zwraca Promise. Pamiętam też o zwracaniu wyniku w łańcuchu, żeby następny krok na niego czekał.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.
Powiązane pytania
- B-P04 · Co to jest Promise? — JavaScript, TypeScript i Node.js