Не, ну на неподготовленного человека, который видит их в первый раз и незнаком с аналогичными концепциями из других языков или библиотек, промисы производят шокирующее впечатление. Но камон, 2019 год на дворе. Кто ещё про них не знает-то?
Очень странно видеть в тексте «обратные вызовы» и «промисы». Вы уж определитесь — либо всё без дословного перевода: «коллбеки» и «промисы», либо с ним: «обратные вызовы» и «обещания» (хотя второй вариант мне режет глаза, думаю, как и многим).
А ещё, в месте где «я создал новый промис используя конструктор Промисов», в коде сообщения переведены, а на скриншотах остались на английском. Нет consistency, так сказать…
В статье есть важная ошибка: «Исполнительная функция выполняется сразу же после создания промиса.»
По спецификации и по факту — исполнительная функция (параметр конструктора) выполняется ПЕРЕД тем, как ссылка на только что созданный экземпляр Promise станет доступна получателю («левой части выражения»).
Ещё интересно, что практически ни один автор не упоминает, что результатом экземпляра Promise никогда не может быть вложенный экземпляр Promise. (В отличие от того же .NET Framework).
Спасибо, синтаксис обратных вызовов гораздо более очевиден и, что самое важное, он допускает намного меньше вариантов записи. Для меня, как начинающего в JS, он выглядит гораздо предпочтительнее промисов.
Когда я тоже был начинающим в JS, я получил задачу на фрилансе (браузерное расширение), где была довольно сложная асинхронная логика. Там я на собственной шкуре ощутил «ад коллбэков», когда их вложенность стала приближаться к двухзначной. И когда я потом познакомился с промисами, у меня не возникло никаких вопросов. Точнее, вру, один возник: Господи, почему не раньше?
Прошу прощения, минусанул ваш комментарий импульсивно. Вы честно и скромно высказали мнение, и с вашей колокольни, пожалуй, всё действительно выглядит так. Но впереди более высокие колокольни.
Разбираемся с промисами в JavaScript