diff --git a/js/promise-all/practice/zheleznikov.md b/js/promise-all/practice/zheleznikov.md new file mode 100644 index 0000000000..ab7a1808df --- /dev/null +++ b/js/promise-all/practice/zheleznikov.md @@ -0,0 +1,21 @@ +πŸ›  `Promise.all()` ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСзависимых асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС ΠΎΠ½ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. + +НапримСр, ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ рСгистрации Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, свободны Π»ΠΈ email ΠΈ Π»ΠΎΠ³ΠΈΠ½, дСйствитСлСн Π»ΠΈ ΠΏΡ€ΠΎΠΌΠΎΠΊΠΎΠ΄. + +Если всС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, выполнится ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ `then()`, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ станСт доступной для наТатия. Если хотя Π±Ρ‹ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой, Ρ‚ΠΎ промис, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ `Promise.all()`, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Ρ‘Π½ β€” сработаСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ `catch()`: Π² этом случаС ΠΌΡ‹ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ сообщСниС ΠΎΠ± ошибкС Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ. + + +```js +Promise.all([ + checkEmail(email), + checkLogin(login), + checkPromoCode(promoCode) +]) + .then(() => { + enableSubmitButton() + }) + .catch((error) => { + disableSubmitButton() + showValidationError(error) + }) +```