4:16 - порядок такой не потому что запрос к серверу дольше, а потому что fetch возвращает промис, а промисы исполняются после основного стека вызова, так как сидят в microtask queue.
Хммм... - А давайте чтобы у нас код не был последовательным придумаем асинхронные вызовы. - Ой, а у нас же нарушается последовательность выполнения кода и он становится асинхронным. - А давайте мы придумаем ожидание выполнения асинхронного кода, чтобы выполнение его было последовательным и ожидаемым.
@@dimape.4180 В том то и дело, что с await это выглядит как обычный синхронный код. Это не go рутины и не фоновые задания 1С. Кстати почти те же йайтса в 1С, только там сначала реализовали через широковещание - ОбработкаОповещения, а потом через Acync (Асинх) Await (Ждать). И в такой конструкции результат выглядит как обычный синхронный код. Только выполняется раз в 10 медленнее. А знаете почему? Потому что 1С тоже имеет (какое слово то гадкое) web клиент. И проблема в том, что браузер ругается на синхронные вызовы и не даёт их выполнять. То есть средство просмотра (браузер) де-факто устанавливает правила для языков программирования и фреймворков.
Александр, всегда с удовольствием смотрю ваши видео, хоть вроде и не новичок ). Не примите за занудство, но попробуйте писать в vscod-e не console.log(), а просто log и клавиша Tab. И перемещать строки или выделенные фрагменты кода, когда вы меняли, например местами функции f1() и f2(), можно Ctrl + Shift + стрелки вверх/вниз )), а не копипастом. С уважением. Спасибо за ваш труд, жму руку. )
Это определено одно из лучших объяснений, а самое главное без таймаутов и интервалов со стрелочной функцией, который только запутают новичка. Спасибо, подписываюсь!
Правильно я понял, если например потом с данными нужно делать определенную логику а не просто текст, например в функции f3 то мы там просто ее и пишем ?
Гениальный язык. И без async функция асинхронна и с async асинхронна. Главное, надо было все сделать работающим асинхронно, а потом выдумывать кастыли как все это синхронизировать. Просто гениально.
Спасибо, Александр ! Вы один из тех немногих кто расказывает о сложном простыми словами и способствует развитию хода мысле в ученике. По моему разумению именно таким и должен быть настоящий УЧИТЕЛЬ. ------------------------- Посдскажите пожалуйста, какие инструменты нужно задействовать в JS чтобы добиться четкого выполнениея таймингов ? Мне нужно чтобы функции вызывались с четкой переодичностью в 1сек и 500мс и весьма желайтельно чтобы этот таймер имел общее основание с Date(), поскольку именно оттуда я беру текущее время.
@@enjoymtx , не получается его отследить потому что тайминги Date() и Setinterval просто не совпадают. Может в системе Можна как то выйти на единый источник тактирования ? Здесь нужно понимать тонкости работы движка js.
@@enjoymtx , к примеру. Через setinterval я вызываю ф-цию каждую секунду, в начале этой ф-ции я проверяю равны ли мс обьекта Data() нулю. И вот здесь и трабла, они никогда не равны нулю. Как тогда я спрашиваю выдержать точные интервалы ?
Хороший пример, спасибо. Еще можно разобрать на вашем примере обработку ошибок при асинхронных запросах. На простых примерах, как правило это упускают, а на продакшен без этого никак.
Александр,как всегда респект. Наконец-то, кто-то понятно и на пальцах объяснил асинк-эвеит. А с помощью промисов, такого же результата можно добиться, посмотрев вашу лекцию про промисы?
вы все такие молодцы ) а когда появится такая услуга чтобы вот ну я завис к какой то теме например асинхронность и мне нужно чтобы учитель мне показал че и как ) а оплата по зеленым оценивается ну как бы час 50 долларов или 60 ну если скидка есть то буду часто обращаться )
@@itgid я хочу заниматься индивидуально по разным вопросам я иду по пути Fullstack если мы могли бы оказывать услуги то мы могли бы вместе работать я был бы вашим учеником VIP
Покажу прикол. Такой код выведет 3 1 4 2 (то есть асинхронная функция не блокирует код на await, он откладывает выполнение функции). Если уже поставить await верхнего уровня перед вызовом функции, то уже будет 3 1 2 4, так как мы уже дожидаемся этой функции и по сути смысла в асинхронности тогда нет. Код внутри промиса выполняется синхронно, поэтому туда реально нужно ложить то, чего вы хотите подождать типа запроса или того же setTimeout ```JavaScript async function f() { console.log("1") let promise = new Promise((resolve, reject) => { setTimeout(() => resolve("готово!"), 1000) }); let result = await promise; // будет ждать, пока промис не выполнится (*) console.log("2") alert(result); // "готово!" } console.log("3") f(); console.log("4") ```
... об async, await ... Перед гласными буквами предлог "о" превращается в "об". Без негатива, просто для справки. А урок кстати полезный и интересный :)
4:16 - порядок такой не потому что запрос к серверу дольше, а потому что fetch возвращает промис, а промисы исполняются после основного стека вызова, так как сидят в microtask queue.
топовый коммент. об этом надо было рассказать
те если делать async/await без fetch то порядок будет любой?
Спасибо
@@faizulla5838 функция async всегда возвращает промис
Интересно, а где в данном случае основной стек вызова?
Крайне важный коммент, в топ.
Долгих лет здоровой жизни вам!) Всегда радуйте нас вашим понятным контентом!
ну наконец-то!!!! хоть где-то реальный кейс с запросом на сервак без этих сеттаймаутов! Спасибо)
Через какие мучения пришлось пройти, что бы это понять! У вас максимально доступно, большое, человеческое спасибо)
да хватит это легко
Было понятно, но всё-равно в уме витали какие-то сомнения. Благодаря такой подаче они полностью развеялись. Спасибо
Это гениально! Большое спасибо ! Самое понятное объяснение которое видел когда либо!
Кучу видео посмотрела и пришла к итого, что ваши видео самые доступные, а также результативные! Огромное вам спасибо!
Огромное спасибо. Благодаря вашему обьяснениям смогла ответить на вопросы на собеседовани и меня взяли на стажировку!
Как дела спустя год?
@@braingriffin946
Видимо, плохо
да как у вас дела?
Посмотрела видос, взяли на работу, за это время никто не оставлял комментарии под видео и она написала первый комментарий. Автор, самому не смешно?
@@avs1978в чем прикол?
Самый лучший канал по JavaScript, постараюсь и платный ваш курс пройти!
Хммм...
- А давайте чтобы у нас код не был последовательным придумаем асинхронные вызовы.
- Ой, а у нас же нарушается последовательность выполнения кода и он становится асинхронным.
- А давайте мы придумаем ожидание выполнения асинхронного кода, чтобы выполнение его было последовательным и ожидаемым.
хмм.. а давай при каждом запросе на сервер, если там задержка, будем ковырять в носу и ждать ответа и не будем придумывать асинхронные вызовы
@@dimape.4180 Нет, давайте делать это, покуда будем ожидать (await) выполнение асинхронных вызовов.
Нет давайте поделаем что-нибудь другое, это же асинхронный вопрос.
@@dimape.4180 В том то и дело, что с await это выглядит как обычный синхронный код. Это не go рутины и не фоновые задания 1С. Кстати почти те же йайтса в 1С, только там сначала реализовали через широковещание - ОбработкаОповещения, а потом через Acync (Асинх) Await (Ждать). И в такой конструкции результат выглядит как обычный синхронный код. Только выполняется раз в 10 медленнее. А знаете почему? Потому что 1С тоже имеет (какое слово то гадкое) web клиент. И проблема в том, что браузер ругается на синхронные вызовы и не даёт их выполнять. То есть средство просмотра (браузер) де-факто устанавливает правила для языков программирования и фреймворков.
Если их придумали значит в них была потребность для опред. ситуаций.
У вас всегда уроки понятно о сложном. Большое спасибо, было очень полезно. Размял свои мозги!))
Лучшее объяснение асинхронности из всего что есть на русскоязычных ресурсах!
Спасибо огромное, посмотрел уже 3 видео и на вашем все встало на свои места
Спасибо, очень полезное видео! наконец-то поняла тему.
Большое спасибо, Сань, твоё видео помогло мне выйти из ступора и решить мою проблему)
Спасибо большое, это четвертое видео которое я смотрю на эту тему и только сейчас стало понятно
это лучшее объяснение async await что может быть вообще!!!!!!
один из лучших каналов по веб-разработке! ВСе понятно и ясно!
Это очень грамотно разжевано. После 5 -6 видосов на эту тему, этот самый лаконичный и понятный.
Александр Лущенко лучший блогер, коучер и программист. Спасибо огромное!!!!!!!!!!!!!!
Спасибо , очень полезно!! понятно все очень!! теперь не много перепишу свой телеграмм-бот.
Лучшее описание, что мне встретилось.
Вы отличный учитель!Спасибо Вам большое!
Спасибо за объяснение, единственный кто легко донес смысл async await)))
Шикарно, как раз на главе по асинхронности в Eloquent JavaScript и понимаю, что это видео хорошенько мне поможет) Спасибо
Спасибо огромное, у Вас очень хороший подход и объяснение технологии. Успехов!
Действительно полезное видео, объясняющее работу асинхронных функций
Спасибо за такое простое и понятное объяснение
Александр, всегда с удовольствием смотрю ваши видео, хоть вроде и не новичок ). Не примите за занудство, но попробуйте писать в vscod-e не console.log(), а просто log и клавиша Tab. И перемещать строки или выделенные фрагменты кода, когда вы меняли, например местами функции f1() и f2(), можно Ctrl + Shift + стрелки вверх/вниз )), а не копипастом. С уважением. Спасибо за ваш труд, жму руку. )
Про log + tab тоже не знал. Только log + enter. Спасибо)
@@untiweuntiwe7415 я кстати, далеко не сразу в работе с вс-кодом узнал про передвижение строк и очень был обрадован этой фичей )
Спасибо, только после этого видео наконец понял что это такое!)
Толково! Спасибо за пример, очень наглядно и понятно.
Лучшее объяснение асинхронности, огромное вам спасибо!
Огромное спасибо!!! Всё доходчиво на 150%, закрыли мои многие вопросы
Большое спасибо за видео! очень понятное объяснение!
лучшее видео эвер, спасибо большое!!!
Очень хорошее обьяснение для новичков! доступно! благодарю!
Спасибо! Стало понятнее!
Наконец то, классно обьяснил ! , уникально, супер, понятно !
Это определено одно из лучших объяснений, а самое главное без таймаутов и интервалов со стрелочной функцией, который только запутают новичка. Спасибо, подписываюсь!
Такие подачи для того что бы показать какой он крутой программист типа владилена
@@digitalturkistan1857 нет. Данный автор никак не хвастается и не "намекает" на то, какой он классный программист
Спасибо) Очень подробно объяснили)
Спасибо за видео, простой и понятный пример!
Здорово, все по делу без воды, спасибо
Правильно я понял, если например потом с данными нужно делать определенную логику а не просто текст, например в функции f3 то мы там просто ее и пишем ?
Отличное объяснение, спасибо за старания!
не ожидал вас тут увидеть:)
@@Lunar66 😎😎
Ви найкращий вчитель IT
Очень доступно объяснили такую сложную тему, спасибо
Спасибо что делаете упор на простоту обьяснения
спасибо громадное Вы один кто так доходчиво рассказал
Наконец-то, без таймеров, на нормальном реальном примере, ободряю.
Все равно до конца не понял. Но это лучшее объяснение что я видел. Спасибо!
Гениальный язык. И без async функция асинхронна и с async асинхронна. Главное, надо было все сделать работающим асинхронно, а потом выдумывать кастыли как все это синхронизировать. Просто гениально.
Единственное, что понял, что асинхронность нужна, чтобы функции работали синхронно. Потому что без асинхронности они работают...асинхронно.
Спасибо)) очень помог ваш видос))
Круто. Не знал за такую тему! Спасибо
Благодарю
и человек и видео прекрасны спасибо большое
Очень хорошее видео! Спасибо за труд!
Спасибо, помог разобрасять с промисами и эсин эвей.
Спасибо, Александр !
Вы один из тех немногих кто расказывает о сложном простыми словами и способствует развитию хода мысле в ученике.
По моему разумению именно таким и должен быть настоящий УЧИТЕЛЬ.
-------------------------
Посдскажите пожалуйста, какие инструменты нужно задействовать в JS чтобы добиться четкого выполнениея таймингов ?
Мне нужно чтобы функции вызывались с четкой переодичностью в 1сек и 500мс и весьма желайтельно чтобы этот таймер имел общее основание с Date(), поскольку именно оттуда я беру текущее время.
@@enjoymtx , не получается его отследить потому что тайминги Date() и Setinterval просто не совпадают.
Может в системе Можна как то выйти на единый источник тактирования ? Здесь нужно понимать тонкости работы движка js.
@@enjoymtx , к примеру. Через setinterval я вызываю ф-цию каждую секунду, в начале этой ф-ции я проверяю равны ли мс обьекта Data() нулю. И вот здесь и трабла, они никогда не равны нулю. Как тогда я спрашиваю выдержать точные интервалы ?
это делается через рекурсивный setTimeout
Чертов Гений❤❤❤🎉
Хороший пример, спасибо. Еще можно разобрать на вашем примере обработку ошибок при асинхронных запросах. На простых примерах, как правило это упускают, а на продакшен без этого никак.
просто в async функции используешь try-catch и все
Очень благодарен. Лущенко the best ))))
Суть понятна, спасибо. Функция go имеет лишний async, ну это мелочи
Ради этого урока я написал свой сервер! 😎
Очень доступная подача. Спасибо!
Спасибо! Наконец то все понятно стало!
дуже доступно та легко
дякую)
Спасибо за видос ждём по больше ещё
Все просто и понятно. Спасибо
Наконец-то стало понятно, что async await фактически делают из асинхронного кода подобие синхронного.
Спасибо большое! Очень круто объяснил
Все супер, но Все же нужно пересмотреть, очень интерестно работа над ошибками
Офигенно объяснили!!! Спасибо!
Дякую, як завжди просто і доступно 👍
Александр,как всегда респект. Наконец-то, кто-то понятно и на пальцах объяснил асинк-эвеит.
А с помощью промисов, такого же результата можно добиться, посмотрев вашу лекцию про промисы?
Огромное спасибо! просто и понятно
Наконец то без циклов и таймаутов
С меня подписка! Вот так нужно объяснять чайникам))
Ну это и лекция. Спасибо больщое
Доступное и понятное объяснение, спасибо. Интересно посмотреть код сервера. Может есть пример где-нибудь на github?
мегачеткий видосик - впрочем как обычно
как всегда супер!
Александр не лучше ли для эмуляции сервера использовать jsonplaceholder ? мне кажется будет нагляднее и интереснее
Good work. Awesome explanation!👍
Спасибо большое! 👍
Бомба 💣!
вы все такие молодцы ) а когда появится такая услуга чтобы вот ну я завис к какой то теме например асинхронность и мне нужно чтобы учитель мне показал че и как ) а оплата по зеленым оценивается ну как бы час 50 долларов или 60 ну если скидка есть то буду часто обращаться )
я вас не понял....
@@itgid я хочу заниматься индивидуально по разным вопросам я иду по пути Fullstack если мы могли бы оказывать услуги то мы могли бы вместе работать я был бы вашим учеником VIP
спасибо, теперь понял
Лучший айтиевангелист
Не. Максимум айтиатеист. Я за то что айти не является чем-то недостижимым.
Класс!
О, никогда ещё практически первым не писал коммент. Лайк в любом случае не глядя. Жду с нетерпением вебтока 4 февраля в эльбрускэмпе.
отлично!
Респект!
спасибо, стало гораздо понятнее)))
Заебись , по человечески
Спасибо!)
шикарно
крутое видео!
Покажу прикол. Такой код выведет 3 1 4 2 (то есть асинхронная функция не блокирует код на await, он откладывает выполнение функции). Если уже поставить await верхнего уровня перед вызовом функции, то уже будет 3 1 2 4, так как мы уже дожидаемся этой функции и по сути смысла в асинхронности тогда нет. Код внутри промиса выполняется синхронно, поэтому туда реально нужно ложить то, чего вы хотите подождать типа запроса или того же setTimeout
```JavaScript
async function f() {
console.log("1")
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("готово!"), 1000)
});
let result = await promise; // будет ждать, пока промис не выполнится (*)
console.log("2")
alert(result); // "готово!"
}
console.log("3")
f();
console.log("4")
```
отличный пример
Класс, спасибо)
... об async, await ... Перед гласными буквами предлог "о" превращается в "об". Без негатива, просто для справки. А урок кстати полезный и интересный :)
Спасибо