ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript: ΠΈΠ·ΡΡΠ°Π΅ΠΌ Async/Await, Callbacks ΠΈ Promises
Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Async/Await Π½Π° JavaScript. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Callbacks ΠΈ Promises.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript. Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
- Callbacks.
- Promises.
- Async / Await.
ΠΠΎΡ ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅:
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript.
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript.
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Callbacks Π² JavaScript.
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Promises Π² JavaScript.
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Async / Await Π² JavaScript.
ΠΡΠΎ β ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π½Π° freeCodeCamp ΠΎΡ Π°Π²ΡΠΎΡΠ° Joy Shaheb.
ΠΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ²Π΅ΡΡΠΈΡ ΡΡΠΎΠΊΠ° ΠΎΡ Π°Π²ΡΠΎΡΠ° (ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ, Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ):
ΠΡΠ°ΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½ΡΠΌ!
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠΎ ΡΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π²Π°ΠΌ.
Π’Π΅ΠΎΡΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ JavaScript ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Ρ ΡΠ΅Ρ Π½ΠΈΠΊ β Callbacks, Promises ΠΈΠ»ΠΈ Async/await β Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π·Π°Π΄Π°Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ JavaScript
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
Π ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½Π° Π·Π° Π΄ΡΡΠ³ΠΎΠΉ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Π° ΡΡΠΊΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ 10 Π·Π°Π΄Π°Ρ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° GIF, Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π·Π° ΡΠ°Π·:
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΏΠΎΠΊΠ° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, Π²ΡΠΎΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΡΠ½Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ JavaScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°ΠΊ: ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΡΡΠΊΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
Π ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ 10 Π·Π°Π΄Π°Ρ Ρ Π²Π°Ρ Π΅ΡΡΡ 10 ΡΡΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°Π΄Π°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° GIF. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΌΠΏΠ΅. ΠΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ Π½Π΅ ΠΆΠ΄ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ .
ΠΡΠ°ΠΊ, Π² ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ JS
Π ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠ³Π½Π°ΡΡ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
Π Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ Π΄ΠΎΡΠΎΠΆΠΊΠ°Ρ . ΠΠ½ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΌΠΏΠ΅. ΠΠΈΠΊΡΠΎ Π½ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ΅ΠΌ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π° JavaScript:
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠ΅ΡΡΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π²Π΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π½Π° JavaScript.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ setTimeout() ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
Π Π²ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ.
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΡΡΡΡ Codepen.io ΠΈ Π½Π°ΡΠ°ΡΡ ΠΊΠΎΠ΄ΠΈΡΡ. ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² VS code ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π» JavaScript, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π² JavaScript
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π² Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΈΠ»ΠΈ callback.
ΠΠΎΡ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°:
ΠΠ΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, ΡΠ΅ΡΠ΅Π· ΠΌΠΈΠ½ΡΡΡ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΡΠ°Π³ΠΈ. Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠ°Π³Π°ΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΡ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ.
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡ ΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΈΠΌΠ΅ΡΡ ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ΅Π·Π°ΡΡ ΡΡΡΠΊΡΡ ΠΈ ΠΏΠΎΠ΄Π°ΡΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅.
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ°Π³ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ.
ΠΠ°Π³Π°Π·ΠΈΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΡΡΠ΅ΠΉ:
- Π ΠΊΠ»Π°Π΄ΠΎΠ²ΠΎΠΉ Π±ΡΠ΄ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π²ΡΠ΅ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ [ΠΡΠΊΠ΅Π½Π΄].
- ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° Π½Π°ΡΠ΅ΠΉ ΠΊΡΡ Π½Π΅ [Π€ΡΠΎΠ½ΡΠ΅Π½Π΄].
Π‘ΠΎΠ·Π΄Π°ΡΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΡΠΊΡΡ, Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΠΌ Π½Π°ΡΠΈ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΡ Π²Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ°ΠΊΠ°Π½ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎΠΏΠΏΠΈΠ½Π³Π°ΠΌΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠΌ:
ΠΠ΅ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π°ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π°ΠΊΠ°Π·, ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π°Π΅ΠΌ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅. ΠΡΠ°ΠΊ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- order;
- production.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΡΡ
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ console.log() Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΡΡ Π²ΡΠ΅ ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΡ, ΠΌΡ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ order. Π Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π²ΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ production.
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π²ΡΠ΅, Π½ΠΎ Π½Π΅ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π½Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ stocks.
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΊΠ°Π· Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΡΡΠΊΡΠ°:
ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π³ΠΎΠ² ΠΈ Π½ΡΠΆΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ° ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°Π³ 1 β ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠ°ΡΠ΅ΠΌ ΡΠ°Π³ 2 β Π½Π°ΡΠ΅Π·Π°ΡΡ ΡΡΡΠΊΡΡ (2 ΡΠ΅ΠΊΡΠ½Π΄Ρ), ΡΠ°Π³ 3 β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ΄Ρ ΠΈ Π»Π΅Π΄ (1 ΡΠ΅ΠΊΡΠ½Π΄Π°), ΡΠ°Π³ 4 β Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ (1 ΡΠ΅ΠΊΡΠ½Π΄Π°), ΡΠ°Π³ 5 β Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (2 ΡΠ΅ΠΊΡΠ½Π΄Ρ), ΡΠ°Π³ 6 β Π²ΡΠ±ΡΠ°ΡΡ Π½Π°ΡΠΈΠ½ΠΊΡ (3 ΡΠ΅ΠΊΡΠ½Π΄Ρ) ΠΈ ΡΠ°Π³ 7 β ΠΏΠΎΠ΄Π°ΡΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅, ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ setTimeout(), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ callback, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠ±Π΅ΡΠ΅ΠΌ Π½Π°ΡΠΈ ΡΡΡΠΊΡΡ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»ΡΠ±Π½ΠΈΠΊΡ, Π²ΠΎΡ ΠΊΠΎΠ΄ Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ:
ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ΄Π°Π»ΡΠΉΡΠ΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ. ΠΡ ΠΎΠΏΡΡΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅Π»ΠΎΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² setTimeout, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ΅Π·Π°ΡΡ ΡΡΡΠΊΡΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°Π²Π΅ΡΡΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ, Π²Π»ΠΎΠΆΠΈΠ² Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π½ΡΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ β ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ², ΠΏΠΎΠΌΠ½ΠΈΡΠ΅?
Π‘ΠΌΡΡΠ΅Π½Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ? ΠΡΠΎ Π°Π΄ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ? ΠΠ½ΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ°ΠΊ ΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΠΊΡΠ°ΡΠΈΠ²ΡΠΌ?
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Promises, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π°Π΄Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
Promises Π±ΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ Π°Π΄Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΡ Π·Π°Π΄Π°Ρ.
ΠΠΎΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ:
Π Π°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°Ρ Π²ΡΡΠ΅, promise ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
- ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅. ΠΡΠΎ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ°Π΄ΠΈΡ. ΠΠ΄Π΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°ΠΊ: Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΠΎΡΠΎΠΏΠΈΡΡΡ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΊΠ°Π·. ΠΠ½ Π΅ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°ΠΊΠ°Π·Π°Π».
- Π Π΅ΡΠ΅Π½ΠΎ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ²ΠΎΡ Π΅Π΄Ρ ΠΈ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½.
- ΠΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ²ΠΎΠΉ Π·Π°ΠΊΠ°Π· ΠΈ ΠΏΠΎΠΊΠΈΠ½ΡΠ» ΡΠ΅ΡΡΠΎΡΠ°Π½.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π΅ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ Π²Π΅ΡΠΈ:
- ΠΠ·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠΎΠΉ.
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Promise.
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ.
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ .finally
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π΄Π΅Π»Π°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ.
ΠΠ·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠΎΠΉ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π½Π°ΡΠΈ ΡΠ°Π³ΠΈ ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅.
Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² JavaScript:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ order ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Π΅ΠΉ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ time, work:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ (Promise) Π½Π°ΡΠ΅ΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ: βΠΡ ΠΏΠΎΠ΄Π°Π΄ΠΈΠΌ Π²Π°ΠΌ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅β:
ΠΠ°ΡΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 2 ΡΠ°ΡΡΠ΅ΠΉ:
- Π Π΅ΡΠ΅Π½ΠΎ [ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ].
- ΠΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ [ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅].
Π’ΠΎ Π΅ΡΡΡ Promise ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Resolve ΠΈ Reject.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°Π±ΠΎΡΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ promise Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ setTimeout() Π²Π½ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° if.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΈ Π±Π΅Π· ΡΠ°ΠΊΡΠΎΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΡΡ ΡΠ΅ΠΊΡΠ½Π΄ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ:
Π¦Π΅ΠΏΠΎΡΠΊΠΈ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ .then.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ .then Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ promise, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ.
Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π΄Π°Π΅ΡΠ΅ ΠΊΠΎΠΌΡ-ΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΌΡ-ΡΠΎ: βΠ‘Π½Π°ΡΠ°Π»Π° ΡΠ΄Π΅Π»Π°ΠΉ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π΅Π»Π°ΠΉ ΡΠΎ, ΠΏΠΎΡΠΎΠΌ Π΄ΡΡΠ³ΠΎΠ΅, ΠΏΠΎΡΠΎΠΌβ¦, ΠΏΠΎΡΠΎΠΌβ¦, ΠΏΠΎΡΠΎΠΌβ¦β, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
- ΠΠ΅ΡΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ° β ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Promise.
- ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π°ΡΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΎΠ΄Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠ²ΠΎ return Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° .then. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ Π½ΡΠΆΠ΅Π½, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ return, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Π²ΡΠ΅ ΡΠ°Π³ΠΈ:
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡ ΠΆΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, Π·Π°ΠΊΠΎΠ½ΡΠΈΠΌ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ-ΡΠΎ ΠΈΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ. Π§ΡΠΎΠ±Ρ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° false.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π·Π°ΠΊΡΡΡ. ΠΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ΄Π°Π΅ΠΌ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ΅ Π½Π°ΡΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ.
Π§ΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ .catch. ΠΠ°ΠΊ ΠΈ .then, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Promise, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π½Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ.
ΠΡΠ°ΠΊ, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ:
- .then ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Promise ΡΡΠ°Π±ΠΎΡΠ°Π» ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ.
- .catch ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Promise ΠΎΡΠ²Π΅ΡΠ³Π½ΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ .then ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ .catch Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
- ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΎΡ ΡΠ°ΡΡΠΈ reject() Π½Π°ΡΠ΅Π³ΠΎ Promise.
- ΠΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° .catch.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ .finally()
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ finally, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π±ΡΠ» Π»ΠΈ Π½Π°Ρ Promise Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ»ΠΈ Π»ΠΈ ΠΌΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ 100 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π½Π°Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π·Π°ΠΊΡΠΎΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ Π΄Π½Ρ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Async / Await Π² JavaScript
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Promise, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΡΠΈΡΡΡΠΌ.
ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠ²ΠΎ async ΠΏΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΈ ΠΎΠ½Π° ΡΡΠ°Π½Π΅Ρ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ΠΌ.
Promises ΠΏΡΠΎΡΠΈΠ² Async/Await Π½Π° JavaScript
ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ async/await Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ async:
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Try ΠΈ Catch
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ try Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π° catch β Π΄Π»Ρ ΠΎΡΠ»ΠΎΠ²Π° ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎ ΡΠ° ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΡ
ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ resolve ΠΈ reject:
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ async/await, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ:
Π’Π΅ΠΏΠ΅ΡΡ, Π½Π°Π΄Π΅Π΅ΠΌΡΡ, Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Promises ΠΈ Async/Await.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Await Π² JavaScript
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ await Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ JavaScript ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° Promise Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΈ Π²Π΅ΡΠ½Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ. ΠΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΎΠΏΠΏΠΈΠ½Π³ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ: ΡΠΎΠΊΠΎΠ»Π°Π΄ ΠΈΠ»ΠΈ Π°ΡΠ°Ρ ΠΈΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΡΠΏΡΠΎΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ΅Π³ΠΎ Π±Ρ ΠΎΠ½ Ρ ΠΎΡΠ΅Π».
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΡΡ Π½Ρ, Π½ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π» Π²Π½Π΅ ΠΊΡΡ Π½ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ:
- ΠΌΡΡΡΠ΅ ΠΏΠΎΡΡΠ΄Ρ;
- ΡΠ±ΠΎΡΠΊΠ° ΡΡΠΎΠ»ΠΎΠ²;
- ΠΏΡΠΈΡΠΌ Π·Π°ΠΊΠ°Π·ΠΎΠ², ΠΈ Ρ.Π΄.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Promise, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΎΠΏΠΏΠΈΠ½Π³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΡΠΈ ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΡΡ
Π½ΠΈ Ρ async.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½ΠΈΠΆΠ΅ kitchen().
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΊΡΡ Π½ΠΈ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°: βΠΠ°ΠΊΠΎΠΉ ΡΠΎΠΏΠΏΠΈΠ½Π³ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅?β. Π ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ Π²ΡΠ±ΠΎΡΠ΅ ΡΠΎΠΏΠΏΠΈΠ½Π³Π°, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΊΡΡ Π½Ρ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ Π·Π°ΠΊΠ°Π·.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Async/Await Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ .then, .catch ΠΈ .finally, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ Promises.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- kitchen Π΄Π»Ρ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΎΡΠΎΠΆΠ΅Π½ΠΎΠ³ΠΎ;
- time Π΄Π»Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΉΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ time:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΡΡ Π½Ρ:
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ Π½Π°ΡΠ° ΠΊΡΡ Π½Ρ:
ΠΠΎΡ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ:
Π Π²ΠΎΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π·Π°ΠΊΡΡΡ.
ΠΠ°Π²Π΅ΡΡΠΈΠΌ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅:
ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΌΠ°Π³Π°Π·ΠΈΠ½:
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΡΡ Π½ΠΈ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ, Π²Ρ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΠΈΠ·ΡΡΠΈΠ»ΠΈ:
- Π Π°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ.
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ JavaScript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ ΠΈ Async/Await.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π·Π° ΡΠΎ, ΡΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°!