Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ then ΠΏΠΎΡΠ»Π΅ catch ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ
ΠΡΡΠ΅Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΠΎ JavaScript Promise Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²
ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΌΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»Ρ JavaScript-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ Β«PromiseΒ». ΠΠ±Π΅ΡΠ°Π½ΠΈΡ (promises) Π² JavaScript β ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ»ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ Π² ECMAScript 2015 (6-Ρ Π²Π΅ΡΡΠΈΡ ECMA-262).
ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉΒ» Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π·Π°Π΄Π°Ρ β ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΡΠ°Π²ΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ±ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΎΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉΒ», ΡΠΊΠΎΡΠ΅Π΅, ΠΏΡΠΈΠ·Π²Π°Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°: «callback hell«. ΠΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° β ΠΈ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ Π΄ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠ°ΠΊΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠ»ΠΎΡ ΠΎΠΌΡ ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ. Π‘ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΠΊΠΎΠ΄Π° Π½Π°ΠΉΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ.
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΈΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉΒ» Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ:
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ»Π°ΠΉΠ΄Π΅ΡΠ΅ Π²Π°ΡΠ΅ΠΉ Π±Π°Π½Π½Π΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΈΠ»ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΎΠ°Π»ΡΠ±ΠΎΠΌΠ΅.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ url.
ΠΠ±ΡΠ΅ΠΊΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° new Promise(. ), ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ: resolve, reject. ΠΠ½ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Resolve() β ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Β«ΡΡΠΏΠ΅ΡΠ½ΠΎΒ», reject() β ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Ρ Β«ΠΎΡΠΈΠ±ΠΊΠΎΠΉΒ» (ΡΡΠΎ ΡΡΠΈΡΠ°ΡΡ Β«ΠΎΡΠΈΠ±ΠΊΠΎΠΉΒ» ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ΅ΡΠ°ΡΡ Π²Π°ΠΌ. ΠΡΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ if(true) <. >else <. >).
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Promise (ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±Π΅ΡΡΠΊΡ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ: Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ (ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ pending), Π° Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ (fulfilled), Π²Π΅ΡΠ½ΡΠ² ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅), ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ (rejected), Π²Π΅ΡΠ½ΡΠ² ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΊΠ°Π·Π°.
Π ΠΌΠ΅ΡΠΎΠ΄Ρ resolve() ΠΈ reject() ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π ΠΌΠ΅ΡΠΎΠ΄ reject(), ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Error Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ (Β«ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Π½ΠΎΠ³ΠΎΒ» ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΒ»). Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π΄Π°Π»ΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ β Π·Π° Π²Π°ΠΌΠΈ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠΊΠ° ΠΌΡ Π»ΠΈΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π΅ΠΊΠΈΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ³ΠΎ, Π±ΡΠ»ΠΎ Π»ΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠΊΠΎΡΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ, ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ).
ΠΠ΅ΡΠΎΠ΄Ρ then() ΠΈ catch()
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β», ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: then() ΠΈ catch(). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΒ» (resolve(. )) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠ΄, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ Β«ΠΎΡΠΈΠ±ΠΊΠΎΠΉΒ» (reject(. )).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ (return) resolve(. ) ΠΈΠ»ΠΈ reject(. ):. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠ·ΠΎΠ²Π° myPromise() Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π» Π±Ρ ΠΌΠ΅ΡΠΎΠ΄ then() ΠΈΠ»ΠΈ catch(). ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠΈ ΡΡΠ°Π·Ρ ΠΏΡΠΈΠ²ΡΡΠΊΡ β Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ resolve(. ) ΠΈΠ»ΠΈ reject(. ). Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ.
Π ΠΌΠ΅ΡΠΎΠ΄Ρ then() ΠΈ catch() ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π²Π΅ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° then() Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΠΊΠΎΠΉ:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ function onSuccess()<> Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΒ», function onFail()<> β Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ:
ΠΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΈΠ²ΡΡΠ½Π΅Π΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ catch(. ). Π’Π°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ catch() ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Β«ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅Β» ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² then(), Π΅ΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ: then().catch().then().ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ catch() ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅: ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡΡ Β«ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅Β» ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΡΠ·ΠΎΠ²Π΅ΠΌ Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ loadImage(url) ΠΈ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠ΄Π½Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ:
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
Π€ΡΠ½ΠΊΡΠΈΡ displayImages(images) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ url ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠΈ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ url Π² ΡΠΏΠΈΡΠΊΠ΅. Π ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ url Π² ΡΠΏΠΈΡΠΊΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉΒ».
Π ΠΌΠ°ΡΡΠΈΠ²Π΅ promiseImgs ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΒ», Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Β«ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎΒ» ΡΠ°ΠΊ ΠΈ Β«ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎΒ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ fake.jpg ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΠ»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Promise.all(. ).
Promise.all(iterable) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉ Π² ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅.
ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π°Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Promise.all Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅Π»ΡΠ·Ρ: Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» (resolved | rejected).
ΠΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠΉΒ» Π΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Β«ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎΒ» (rejected), ΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Promise.all ΡΠ°ΠΊ ΠΆΠ΅ Π²Π΅ΡΠ½Π΅Ρ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ loadAndDisplayImages.
ΠΠΎΠ΄Π³ΡΡΠΆΠ°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ΅ ΡΡΠ°Π·Ρ
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ (Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ Π² Chrome Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠΌΡΠ»ΡΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ Wi-Fi (2ms, 30Mb/s, 15M/s):
Π Π°Π·ΠΎΠ±ΡΠ°Π²ΡΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Promise, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ API Π―Π½Π΄Π΅ΠΊΡ.ΠΠ°ΡΡ, ΠΈΠ»ΠΈ Service Worker β ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΌ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
UPD: Π ΡΡΠ°ΡΡΠ΅ Π½Π΅ ΠΎΠ·Π²ΡΡΠΈΠ» ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ, ΠΎΡΡΠ°ΡΡΠΈ, Π±ΡΠ» ΡΠ²ΡΠ·Π°Π½ ΡΠΎΠ²Π΅Ρ ΠΏΠΈΡΠ°ΡΡ return resolve() ΠΈΠ»ΠΈ return reject().
ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎΒ» ΠΈΠ»ΠΈ Β«ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΎΒ», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ. ΠΡΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΎΠΌΠΈΡΡ: ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ
Π¦Π΅ΠΏΠΎΡΠΊΠΈ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΌΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΠ΅ΡΠ²Π½ΡΠΉ tryβ¦catch
ΠΠΎΠΊΡΡΠ³ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΌΠΈΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ «Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ try..catch «. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΎΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ, ΠΈ ΠΏΡΠΎΠΌΠΈΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΡΠΌ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
β¦Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΡΠΎΡ:
«ΠΠ΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ try..catch » Π²ΠΎΠΊΡΡΠ³ ΠΏΡΠΎΠΌΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Ρ Π² ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΡΠΉ ΠΏΡΠΎΠΌΠΈΡ.
ΠΡΠΎΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
Π ΠΎΠ±ΡΡΠ½ΠΎΠΌ try..catch ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡΡ Π΄Π°Π»ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠΌΠΈΡΠΎΠ².
ΠΠ΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠ°ΠΊ Π±Ρ Β«Π·Π°ΡΡΡΠ΅Π²Π°Π΅ΡΒ», Π΅Ρ Π½Π΅ΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΡΠ½ΡΡ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² ΠΊΠΎΠ΄Π΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π½Π΅ ΡΠ°ΠΊ.
JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅.
Π Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΉΠΌΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ unhandledrejection :
ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° HTML.
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ΡΡΡΡΠ°Π½ΠΈΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ β ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΡΠΎΠΌΠΈΡΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΠ΅Π²Π΅Ρ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π½Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°ΡΡΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΎΡΡΠ΅ΠΌ ΡΠΈΠ½Π³Π»Π΅.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ΡΡΠΊΡ, Π²Ρ ΠΎΠ±Π΅ΡΠ°Π΅ΡΠ΅ ΡΠ°Π·ΠΎΡΠ»Π°ΡΡ ΠΈΠΌ ΡΠΈΠ½Π³Π», ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½. ΠΡ Π΄Π°ΡΡΠ΅ ΡΠ°Π½Π°ΡΠ°ΠΌ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΌ ΡΠ²ΠΎΠΉ e-mail, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ½Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½Π° Π²ΡΠΉΠ΄Π΅Ρ. Π Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅: Π΅ΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΉΠ΄ΡΡ Π½Π΅ ΡΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΡΠ΄ΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΆΠ°Ρ ΠΈ ΠΏΠ΅ΡΠ½Ρ Π²ΡΠΏΡΡΡΠΈΡΡ Π½Π΅ Π²ΡΠΉΠ΄Π΅Ρ, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΡΠ΅ ΡΡΠ°ΡΡΠ»ΠΈΠ²Ρ! ΠΡ ΡΡΠ°ΡΡΠ»ΠΈΠ²Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΠ°Π½Π°ΡΡ, Π° ΡΠ°Π½Π°ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΏΡΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠ½Π³Π».
ΠΡΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π΄Π»Ρ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ:
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎΡΠ½Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Promise Π² JavaScript Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ: ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΈ ΡΠ°ΠΊΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΠΎΡΠΎΡΠ°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Promise :
ΠΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ resolve ΠΈ reject β ΡΡΠΎ ΠΊΠΎΠ»Π±ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΌ JavaScript. ΠΠ°Ρ ΠΊΠΎΠ΄ β ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ.
ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ β Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ ΠΊΠΎΠ»Π±ΡΠΊΠΎΠ²:
Π’Π°ΠΊ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΠΏΠΎ ΠΈΡΠΎΠ³Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ promise Π² ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ:
ΠΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Β«ΡΠ°Π½Π°ΡΡΒ» ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ .
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Promise ΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, Π΄Π°ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ (ΡΠ΅ΡΠ΅Π· setTimeout ):
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ² ΠΊΠΎΠ΄ Π²ΡΡΠ΅:
ΠΡΠΎ Π±ΡΠ» ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Β«ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉΒ» ΠΏΡΠΎΠΌΠΈΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠΈΡ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
ΠΡΠΎΠΌΠΈΡ β ΠΈ ΡΡΠΏΠ΅ΡΠ½ΡΠΉ, ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΡΠΉ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Β«Π·Π°Π²Π΅ΡΡΡΠ½Π½ΡΠΌΒ», Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠΈΡΠ° Β«Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈΒ».
ΠΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ resolve ΠΈ reject Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ:
ΠΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΡΠΎΠ³: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ.
Π’Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ resolve / reject ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ (ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ). ΠΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π·Π°Π΄Π°ΡΡ, Π½ΠΎ ΡΡΡ ΠΆΠ΅ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΡΠ°Π½Π΅Π΅ Π΅Ρ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ, ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π·Π°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ: then, catch, finally
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠΈΡ:
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π² Π½ΠΈΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ
ΠΠ΅Ρ ΡΡΠ΄Π΅Π½, ΡΡΠΌΠ΅Π½ β Π³Π»ΡΠ½Ρ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ.
ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Ρ Π²ΡΠ΅ Π΄ΠΎΠ»Π³ΠΈ Π²Π΅ΡΠ½Ρβ¦
Π ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠ»Ρ, ΠΏΠΎΠΊΠ° Ρ ΡΡΠ½Ρ,
Π’Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠ»Ρ, ΠΏΠΎΠΊΠ° Ρ ΡΡΠ½Ρ.
Π ΠΎΠ±Π΅ΡΡ Π€ΡΠΎΡΡ
ΠΡΠΎΠΌΠΈΡΡ β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ² ES6. JavaScript ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ β Β«Π°Π΄ ΠΊΠΎΠ»Π»Π±ΡΠΊΠΎΠ²Β» ΠΈ Β«ΠΏΠΈΡΠ°ΠΌΠΈΠ΄Π° ΡΠΆΠ°ΡΠ°Β». ΠΡΠΎΠΌΠΈΡΡ β ΡΡΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° JS. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΌΠΈΡΠΎΠ², Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΈ Π»ΠΈΡΡΠ½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΊΠΎΠ»Π»Π±ΡΠΊΠ°ΠΌΠΈ.
ΠΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, ΠΏΠΎΡΠ²ΡΡΡΠ½ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌ ΠΈ ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠΌΠΈΡ?
ΠΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ², Π΄Π°Π½Π½ΠΎΠ΅ ECMA: Β«ΠΡΠΎΠΌΠΈΡ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΡΠΎΠ·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ (ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ) Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ β ΠΏΡΠΎΠΌΠΈΡ (promise) β ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π»Ρ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π’ΡΡ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ, Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΠΏΡΠΎΠΌΠΈΡΠ°Ρ , ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΠΌΠΈΒ» ΠΈ Β«ΠΎΠ±Π΅ΡΠ°Π½Π½ΡΠΌΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈΒ». ΠΡΠ»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΠΎ ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ»ΠΎΠ²ΠΎ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» (promise) Π² ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ Π·Π°Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΈ Π±ΠΈΠ»Π΅Ρ Π½Π° ΡΠ°ΠΌΠΎΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅ΡΠΈΡ Π² ΠΠ½Π΄ΠΈΡ. Π’Π°ΠΌ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΡ Π³ΠΎΡΠ½ΡΡ ΡΡΠ°Π½ΡΠΈΡ ΠΠ°ΡΠ΄ΠΆΠΈΠ»ΠΈΠ½Π³. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π±ΡΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π±ΠΈΠ»Π΅Ρ. ΠΡΠΎ Π±ΠΈΠ»Π΅Ρ, ΠΏΠΎ ΡΡΡΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ΠΌ Π°Π²ΠΈΠ°ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°ΠΌ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ°ΠΌΠΎΠ»ΡΡΠ΅ Π² Π΄Π΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Π² ΠΏΡΡΡ. Π ΡΠ΅Π»ΠΎΠΌ, Π±ΠΈΠ»Π΅Ρ β ΡΡΠΎ ΠΌΠ΅ΡΡΠΎΠ·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π΄Π»Ρ ΠΊΡΠ΅ΡΠ»Π° Π² ΡΠ°ΠΌΠΎΠ»ΡΡΠ΅.
ΠΠΎΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡ ΠΏΠΎΠΎΠ±Π΅ΡΠ°Π»ΠΈ Π΄ΡΡΠ³Ρ, ΡΡΠΎ Π²Π΅ΡΠ½ΡΡΠ΅ Π΅ΠΌΡ Π΅Π³ΠΎ ΠΊΠ½ΠΈΠ³Ρ Β«ΠΡΠΊΡΡΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΡΡΠ΅ Π΅Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ΅ΡΡΠΎΠ·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ β ΡΡΠΎ Π²Π°ΡΠΈ ΡΠ»ΠΎΠ²Π°. Π Β«Π±ΡΠ΄ΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΒ» β ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π°.
Π ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΈΡΠΌΠ½ΠΎΠΉ Π²ΡΠ°ΡΠ°, Π·Π°ΠΊΠ°Π· Π΅Π΄Ρ Π² ΡΠ΅ΡΡΠΎΡΠ°Π½Π΅, Π²ΡΠ΄Π°ΡΠ° ΠΊΠ½ΠΈΠ³ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡΠ΅ ΡΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π½Π΅ΠΊΡΡ ΡΠΎΡΠΌΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ. ΠΠΎΠΆΠ°Π»ΡΠΉ, ΠΌΡ ΠΏΡΠΈΠ²Π΅Π»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΠΉΠΌΡΠΌΡΡ ΠΊΠΎΠ΄ΠΎΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ²
ΠΡΠΎΠΌΠΈΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° Π½Π΅Π»ΡΠ·Ρ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ β Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡ 10 Π΄ΠΎ 200 ΠΌΡ, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ Π² Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΆΠ΄Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° 200 ΠΌΡ β ΡΡΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ°Π»ΠΎ, Π½ΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎΠΌΠΈΡΡ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°Π΄Π°Ρ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Math.random() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π». Π 90% ΡΠ»ΡΡΠ°Π΅Π², ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ°Π²Π½ΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΄Π°ΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», ΠΏΡΠΎΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΡΠ½. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ²
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π»Π΅Π½ΠΈΠ²ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π»ΠΈΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, ΠΈΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ± ΡΡΠΎΠΌ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΏΡΠΎΠΌΠΈΡΠ°Ρ
ΠΡΠΈΠΌΠ΅Ρ ΡΡΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ, Ρ ΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½ Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ Π² 90% ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ 10% ΡΠ»ΡΡΠ°Π΅Π².
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΡΠΊΠΈ
ΠΡΠΎΠ³ΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ, ΡΠ΅ΡΠ΅Π· ΠΏΡΠ°ΠΊΡΠΈΠΊΡ, Π»ΡΡΡΠ΅ ΠΎΡΠ²ΠΎΠΈΡΡ ΡΠΎ, ΠΎ ΡΡΠΌ ΡΠ»Π° ΡΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΎΠΌΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΊΠΎΠ»Π»Π±ΡΠΊΠ°Ρ , Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² Node.js, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π² fs ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΊΠΎΠ»Π»Π±ΡΠΊΠ°Ρ . Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠΈΡΠ°Ρ . Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ util.promisify ΠΈΠ· Node.js, ΠΈ pify.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ°ΠΊ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° JavaScript?
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² Π² JavaScript
ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² Π² JavaScript.
ΠΠΎΡΠ΅ΠΌΡ ΠΊ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌ ΠΏΡΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ? ΠΠΎΠ»Π°Π³Π°Π΅ΠΌ, Π²ΡΡ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΡΠ° Π²Π΅ΡΡΠΌΠ° Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π°, ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Π½Π΅ΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ.
ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΠΌΠΈΡΡ, ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΏΠΎΡΠ²ΡΡΡΠ½Π½ΠΎΠΉ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅. ΠΡ Π°Π²ΡΠΎΡ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 10 Π»Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π½Π° Java ΠΈ PHP, Π½ΠΎ Π²ΡΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠΌ ΠΏΠΎΠ³Π»ΡΠ΄ΡΠ²Π°Π» Π½Π° JavaScript. ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΎΠ½ ΡΠ΅ΡΠΈΠ» Π²ΡΠ΅ΡΡΡΠ· Π·Π°Π½ΡΡΡΡΡ JS ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π²ΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ°Π»ΠΈ ΠΏΡΠΎΠΌΠΈΡΡ.
ΠΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ²ΡΡΠ²ΡΡΡ, ΡΡΠΎ, Ρ ΠΎΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ. ΠΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΡΡΠΊΠ°Π· ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ ΡΠΌΠΎΡΡΠΈΡ Π½Π° JavaScript ΡΠ²Π΅ΠΆΠΈΠΌ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ ΠΈ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ½ΡΠ» ΡΠ°ΠΌ, Π½Π΅ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²Π΅ΡΠΈ ΠΏΠΎΠ½ΡΡΠ½Ρ Π²ΡΠ΅ΠΌ ΠΈ Π±Π΅Π· ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ Π² Π΄Π΅Π»Π΅ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² JavaScript.
JavaScript Π³Π»Π°Π·Π°ΠΌΠΈ Π½ΠΎΠ²ΠΈΡΠΊΠ°
Π’ΠΎΡ, ΠΊΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ Π½Π° JavaScript, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ, Β«Π½Π΅ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°ΡΠ΅Π»ΠΊΠ΅Β». ΠΠ΄Π½ΠΈ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ JS β ΡΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ β Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ. ΠΠΎΠ²ΠΈΡΠΎΠΊ ΡΠ»ΡΡΠΈΡ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΈ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ, ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡΡ , ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΎ ΡΡΠ΅ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ± ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ ΠΎΠ± ΠΈΡ Π²ΡΠΏΠ»ΡΡΠΈΠΈ, ΠΎ ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π»Π°Ρ . ΠΠ½ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΊΠΈ, ΠΊΠ°ΠΊ Babel, Angular, React, Vue ΠΈ ΠΌΠΈΡΠΈΠ°Π΄Ρ Π΄ΡΡΠ³ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ·Π½Π°Π»ΠΈ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΎΡ Β«Π½ΠΎΠ²ΠΈΡΠΊΠ΅Β» ΡΠ΅Π±Ρ β Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ»Π½ΠΎΠ²Π°ΡΡΡΡ. ΠΡ β Π½Π΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ. ΠΡΡΡ Π΄Π°ΠΆΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ β ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Β«JavaScript-ΡΡΡΠ°Π»ΠΎΡΡΡΒ» (JavaScript fatigue). ΠΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΌΠ΅ΡΠΊΠΎ Π²ΡΡΠΊΠ°Π·Π°Π»ΡΡ ΠΡΠΊΠ°Ρ Π€ ΠΠΎΡΡΠ°: Β«JavaScript-ΡΡΡΠ°Π»ΠΎΡΡΡ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π»ΡΠ΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΡ Ρ Π½ΠΈΡ Π½Π΅ΡΒ».
ΠΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΎ Π³ΡΡΡΡΠ½ΠΎΠΌ. ΠΡΠ°ΠΊ, JavaScript β ΡΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΠΎΠ»Π»Π±ΡΠΊΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ .
ΠΡΠΎΡΡΠΎΠΉ ΡΠ°ΡΡΠΊΠ°Π· ΠΎ ΠΏΡΠΎΠΌΠΈΡΠ°Ρ
Π‘Π»ΠΎΠ²ΠΎ Β«promiseΒ» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β». Promise-ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ Β«ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈΒ», ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ Π΄Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ°ΠΊΠΈΡ Π²ΠΎΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΡ .
Π ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π° Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β»: Β«ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ, ΡΠΎΠ³Π»Π°ΡΠΈΠ΅ ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ»ΠΈ, Π½Π°ΠΏΡΠΎΡΠΈΠ², Π½Π΅ Π΄Π΅Π»Π°ΡΡΒ». Π ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΠΆΠ΅Π³ΠΎΠ²Π° Β«ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅Β» β ΡΡΠΎ Β«Π΄ΠΎΠ±ΡΠΎΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄ΡΒ».
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΎΠ± ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΡ ?
ΠΡΠΎΠΌΠΈΡΡ Π² JavaScript
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ JavaScript, Ρ Π²ΡΠ΅Π³Π΄Π° ΡΠΈΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° MDN. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎΡ ΡΠ΅ΡΡΡΡ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΡΡΠΊΠΎΡΡΡΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ, ΠΈΠ·ΡΡΠ°Ρ ΠΏΡΠΎΠΌΠΈΡΡ, Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ ΠΈ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π» Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²ΡΠΊΠ½ΡΡΡ ΠΊ Π½ΠΎΠ²ΡΠΌ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΠΌΠΈΡΡ, Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ. ΠΠ΅ΡΠ²Π°Ρ β ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ². ΠΡΠΎΡΠ°Ρ β ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ. Π₯ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠΌΠΈΡΠΎΠ², Π±Π΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΡ, Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΌΠΈΡΡ, ΡΠ°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠΈΡΠΎΠ²
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠΌΠΈΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΌΠΈΡΡ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠΌΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ Π²ΠΎ Π²ΡΡΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ.
ΠΠΎΡ ΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄:
Π£ ΠΏΡΠΎΠΌΠΈΡΠ° Π΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (PromiseStatus) ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (PromiseValue)
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΎΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· 10 ΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠΎ Π΄Π°ΡΡ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠΈΡΠ°.
ΠΡΠΎΠΌΠΈΡ, ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΉ ΡΠ΅ΡΠ΅Π· 10 ΡΠ΅ΠΊΡΠ½Π΄ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
ΠΠ·Π³Π»ΡΠ½Π΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π° ΠΏΡΠΎΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ, Π° ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌ ΡΠΎΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠΈΡΠ°, Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Google Chrome), Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΠΆΠ΅.
ΠΠ±ΡΠ΅ΠΊΡ Promise
Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ MDN, ΠΎΠ±ΡΠ΅ΠΊΡ Promise ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
βΠΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Promise
Π‘Ρ
Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠΌΠΈΡΠ° (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π·ΡΡΠΎ ΠΎΡΡΡΠ΄Π°)
ΠΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ. ΠΡ β ΡΠΊΠΎΠ»ΡΠ½ΠΈΠΊ ΠΈ ΠΏΡΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ° ΠΌΠ°ΠΌΠ° ΠΊΡΠΏΠΈΠ»Π° Π²Π°ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΈΠΊ. ΠΠ½Π° Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«ΠΡΠ»ΠΈ Π½Π°ΡΠΈ ΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎΠΈΡ ΡΠ΅Π»Π΅ΡΠΎΠ½, Ρ Π΅Π³ΠΎ ΡΠ΅Π±Π΅ ΠΊΡΠΏΠ»ΡΒ». Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ·ΡΠΊΠΎΠΌ JavaScript.
ΠΠΎΡ ΡΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄:
ΠΠ°ΠΌΠ° Π½Π΅ ΡΠ΄Π΅ΡΠΆΠ°Π»Π° ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ momsSavings Π½Π° 200000, ΡΠΎΠ³Π΄Π° ΠΌΠ°ΠΌΠ° ΡΠΌΠΎΠΆΠ΅Ρ ΠΊΡΠΏΠΈΡΡ ΡΡΠ½Ρ ΠΏΠΎΠ΄Π°ΡΠΎΠΊ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
ΠΠ°ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΡΠ΅ ΠΏΡΠΎΠΌΠΈΡΡ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ.
βΠ‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Promise
ΠΠ°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΌΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ΄, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅.
ΠΠΎΡ ΡΡΠΎ ΠΎΠ½ Π²ΡΠ²Π΅Π΄Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°:
βΠΠ΅ΡΠΎΠ΄ Promise.all
ΠΡΠΈΠΌΠ΅Ρ β1
ΠΠ΄Π΅ΡΡ Π±ΡΠ΄ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ Π²ΡΠ΅ ΠΏΡΠΎΠΌΠΈΡΡ. Π’Π°ΠΊΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ.
ΠΠΎΡ ΡΡΠΎ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π΄Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ:
ΠΡΠ΅ ΠΏΡΠΎΠΌΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠ΅ΡΠΈΠΉ ΠΏΡΠΎΠΌΠΈΡ, Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ 2 ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ· Π²ΡΠ²ΠΎΠ΄Π°, ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ.
ΠΡΠ»ΠΈ Π±Ρ ΠΏΡΠΎΠΌΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ Π±Ρ 7 ΡΠ΅ΠΊΡΠ½Π΄ (1+4+2). ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΉΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π½Π°ΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΡ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π½ΡΠ»Π°, Π΅ΡΠ»ΠΈ ΠΎΠΊΡΡΠ³Π»ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, 4 ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠΌΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
ΠΡΠΈΠΌΠ΅Ρβ 2
ΠΠΎΡ ΠΊΠ°ΠΊΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄:
ΠΡΠ·ΠΎΠ² Promise.all Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΌΠΈΡΠΎΠ²
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π΅Ρ ΠΏΡΠΎΠΌΠΈΡΠΎΠ², Promise.all ΠΏΠΎΡΡΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ β3
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Promise.all ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠΈΡΠ° Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΄Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠΌΠΈΡ.
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠΈΡΠ°
βΠΠ΅ΡΠΎΠ΄ Promise.race
MDN ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Promise.race(iterable) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΡΠΉ ΠΏΡΠΎΠΌΠΈΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠΌΠΈΡΠΎΠ² Π±ΡΠ΄Π΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°Π·ΡΠ΅ΡΡΠ½ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½.
ΠΡΠΈΠΌΠ΅Ρ β1
ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
ΠΡΠΎΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΡΡ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΠΡΠΈΠΌΠ΅Ρ β2
Π ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΏΠΎΠΏΠ°Π΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠΎΠΌΠΈΡ, ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ½Π½ΡΠΉ ΡΠ°Π½ΡΡΠ΅ Π²ΡΠ΅Ρ
ΠΠ±ΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ
Π― ΡΠΎΠ±ΡΠ°Π» Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ Π½ΠΈΠΌΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°ΡΡΡΠΈΡΠ°Π½ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ API, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π₯ΠΎΡΡ Π²ΡΡ ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠΈΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π»Π΅ΡΡ Π½Π°Ρ ΠΎΡ Π½Π°ΡΠ΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ β ΠΏΡΠΎΠΌΠΈΡΠΎΠ². Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΠΌΠΈΡΠΈΡΡΡΡΠΈΡ , Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, Π΄Π°ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ΅ΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ.
ΠΡΠΎΠ³ΠΈ
ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΎΠΌΠΈΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! Π‘ΠΊΠ°ΠΆΠΈΡΠ΅, ΠΈΡΠΏΡΡΡΠ²Π°Π»ΠΈ Π»ΠΈ Π²Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΌΠΈΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ?
ΠΡΠΎΠΌΠΎ-ΠΊΠΎΠ΄ Π½Π° ΡΠΊΠΈΠ΄ΠΊΡ Π² 10% Π½Π° Π½Π°ΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°: