JavaScript событийный цикл Event Loop, асинхронный код, промисы (Promise), async / await

  Рет қаралды 7,757

Александр Ламков — Friendly Frontend

Александр Ламков — Friendly Frontend

Күн бұрын

Пікірлер: 57
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
📌 Друзья, в телеграмме у нас есть отдельный чат, где вы можете задать вопрос по фронтенд-разработке и вам постараются помочь: 💬 t.me/friendlyFrontendChat Если вам это интересно, присоединяйтесь, задавайте вопросы и помогайте другим 🙂
@kolyanixx5311
@kolyanixx5311 4 ай бұрын
Единственный блогер объясняющий без воды)
@akylbekbaizakov
@akylbekbaizakov 9 күн бұрын
Сложная тема. Но объясняете хорошо. Благодарю!
@NurgulMadanbekova
@NurgulMadanbekova Ай бұрын
Из тысячи блогеров вещающие про программирование, Александр очень четко,коротко и ясно обьясняет)) Cейчас я в процессе обучения программирование и очень круто помогают ваши видео)Спасибо!
@mirci5459
@mirci5459 3 ай бұрын
оогооо, впервые вижу такие подробные уроки по JS, так держать! Прям так же подробно по js, как и simple code по c++ - такие люди редкость прям (год назад искал тоже уроки о js, но все было разбросано и не достаточно понятно в отличие от этих уроков)
@Roman-k9l6v
@Roman-k9l6v 2 ай бұрын
Спасибо тебе, добрый человек. Не забрасывай только, очень полезные материалы
@Ozeum
@Ozeum 4 ай бұрын
Огромное спасибо, максимально лаконично, информативно и полезно. Жду мастер-класс 🎉
@Anatoli-bq1pe
@Anatoli-bq1pe 4 ай бұрын
Благодарю за очередной классный видос!
@jekakavaltchuk2714
@jekakavaltchuk2714 4 ай бұрын
Очень хорошо объяснил, благодарю)
@vitkul
@vitkul Ай бұрын
Спасибо. Очень доступно объяснил.
@dsmorodiny
@dsmorodiny 18 күн бұрын
Блин такая подача классная и так мало лайков… За то у Минина просмотров огромное количество но смотреть не возможно…Успехов тебе дружище и спасибо.
@umudumu
@umudumu 4 ай бұрын
Дождались самого животрепещущего урока.
@sntfootball567
@sntfootball567 4 ай бұрын
Спасибо за урок. Очень информативно
@johanferding9485
@johanferding9485 4 ай бұрын
Как раз то, что искал, спасибо за Вашу работу 😉👍
@АлександрСальников-с2ж
@АлександрСальников-с2ж 4 ай бұрын
Коммент в поддержку, спасибо за урок!
@СтаниславГорячев-г1ъ
@СтаниславГорячев-г1ъ 4 ай бұрын
Спасибо вам большое, очень все понятно
@mouri_san
@mouri_san 3 ай бұрын
Спасибо за урок!
@ГеоргийМеньшиков-п5ю
@ГеоргийМеньшиков-п5ю 9 күн бұрын
хотел уточнить на 16:37 , функция makeRequest принимает два параметра url и onSuccess, но при вызове промиса вызывается с одним параметром url, так и должно быть? Один из лучших каналов по фронтенду, все разложено по плейлистам, огонь! Спасибо!
@AleksanderLamkov
@AleksanderLamkov 9 күн бұрын
Функция makeRequest фейковая, не настоящая. Да, по-хорошему она внутри себя должна использовать и параметр url и onSuccess, но это в объяснении текущей темы опускается, чтобы не запутаться. P. S. Про клиент-серверное взаимодействие и функцию fetch, с помощью которой выполняются настоящие запросы к серверу, я рассказываю в одном из дальнейших уроков этого курса.
@ГеоргийМеньшиков-п5ю
@ГеоргийМеньшиков-п5ю 9 күн бұрын
@@AleksanderLamkov понял, спасибо!
@andreyboikov
@andreyboikov 4 ай бұрын
Спасибо, очень полезно :)
@smotritelyoutube
@smotritelyoutube 4 ай бұрын
Супер, лайк!
@ДиляраЗубарева-й1о
@ДиляраЗубарева-й1о 14 күн бұрын
Спасибо большое за урок! Пока мало что понятно по этой теме, но надеюсь понимание придет. Почему-то у меня не получилось подключить type="module" в html. Вывелось сразу две ошибки, хотя делаю все, как на видео. В чем может быть причина?
@AleksanderLamkov
@AleksanderLamkov 14 күн бұрын
Попробуй открыть страницу через WebStorm и пункт 'Open in => Browser' из контекстного меню. А если у тебя VSCode, то нужен LiveServer. Иначе JS-модули не будут работать в локально открытом html-файле через обычный проводник.
@w0x3rrr81
@w0x3rrr81 3 ай бұрын
Привет,не совсем понял почему при указании типа подключения js файла в html заработал await в глобальной области видимости?
@AleksanderLamkov
@AleksanderLamkov 3 ай бұрын
Ограничения языка - await в глобальной области видимости работает только в модулях. Но в скором времени и без указания type="module" будет работать. А пока что без этого никак.
@w0x3rrr81
@w0x3rrr81 3 ай бұрын
@@AleksanderLamkov интересно,на learn.js нет такой инфы,благодарю)
@КириллКараваев-т7ш
@КириллКараваев-т7ш 2 ай бұрын
Эх, я понимаю, что объяснение хорошее, но почему-то эта тема даже труднее, чем то, что Вы называли трудным: классы...
@AleksanderLamkov
@AleksanderLamkov 2 ай бұрын
Эту тему я бы не назвал легкой. Одна из самых сложных, это факт. Нужно попрактиковаться, чтобы пришло понимание)
@karangan
@karangan 3 ай бұрын
А есть какое-то техническое объяснение почему ты используешь fulfill вместо resolve? Есть ли вообще разница, или это просто вкусовщина?
@AleksanderLamkov
@AleksanderLamkov 3 ай бұрын
Нет разницы в том, как называть эту функцию. Я решил в объяснении использовать это слово, т. к. оно созвучно названию состояния 'fulfilled'. Думал так будет проще зрителю воспринять материал. Сам же в своем коде я чаще использую слово resolve в подобных местах.
@SuperWolchara
@SuperWolchara 4 ай бұрын
В случае с фетч который возвращает промис трай кетч не отловит плохой ответ по статусу, а жаль. Пиши свой кастомный фетч)
@ntldrzic
@ntldrzic 4 ай бұрын
Плохой статус, это не ошибка выполнения самого запроса, а один из вариантов ответа. Хотя axios кажется возвращает reject на 400 и 500
@sardar9995
@sardar9995 Ай бұрын
Шаг за шагом год за годом
@andrf
@andrf Ай бұрын
боже я прозрел
@gabbergabberovich
@gabbergabberovich 4 ай бұрын
Привет, ты как-то странно объясняешь про многопоточность, называя это событийным циклом. Просто JS сам себе многопоточный в отличие тех же PHP и Java. Обучающемуся нужно понять что такое многопоточность, и код который висит в функциях(методах) начинает отрабатывать по забинденному событию или тому же setTimrout-у. И блоки исполняемого кода в таких событийных функциях работают независимо друг от друга. А так все замечательно, продолжай в том же духе.
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
Во всех материалах, на которые я ориентировался, акцентируют внимание на том, что JS - однопоточный. Исключения - NodeJS с определенной версии и WebWorkers. Или ты имеешь в виду, что асинхронность = многопоточность? Такую аналогию видел, но её нечасто используют.
@gabbergabberovich
@gabbergabberovich 4 ай бұрын
@@AleksanderLamkov JS многопоточный, от куда у тебя инфа про однопоточность? Вся прелесть ECMAScript(если не не изменяет память) второй версии именно это и преподносила как совершенно другой подход в программировании, а именно - параллельность исполнения кода.
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
@gabbergabberovich Третий абзац в «Кратко»: doka.guide/js/async-in-js/ Вся статья и комментарии к ней: habr.com/en/amp/publications/786330/ И миллион других ресурсов по запросу в гугле «js однопоточный». Вообще, я не фанат обмусоливания теории. Мне искренне плевать на то, какой язык, однопоточный, псевдо-однопоточный, многопоточный или псевдо-многопоточный. Философия моего «я» во фронтенде - «я крашу кнопки за большой прайс». Я понимаю как делать «фронтенд» и зарабатываю на этом. И пытаюсь научить этому других. Теоретические знания - то, чем можно выпендрится на собеседованиях в МААНГ и в публичных пространствах в интернете. Меня это не цепляет. Если знания нельзя применить на практике (за исключением супер-специфичных ситуаций), то в моей картине мира эти знания бесполезны. И я не гнушаюсь транслировать свою философию в массы, т. к. моя карьера - органичный воспроизводимый путь. Не нужно быть Computer Science адептом и экспертом спецификации JavaScript, чтобы делать современный удобный красивый, быстрый и удобнорасширяемый фронтенд. Даже если мы докопаемся этим диалогом до сути, то на практике я эти знания не применю, поэтому со временем они забудутся.
@maximmadan
@maximmadan 4 ай бұрын
Java многопоточная
@mushroom2267
@mushroom2267 4 ай бұрын
@@gabbergabberovich с каких пор js стал многопоточным? не вводи людей в заблуждение. Это как написали выше java многопоточный
@AndrejMoskalev
@AndrejMoskalev 3 ай бұрын
коммент
@offernity2707
@offernity2707 Ай бұрын
мне стало становиться совсем непонятно (
@AleksanderLamkov
@AleksanderLamkov Ай бұрын
А с чем именно возникли сложности? Может я помогу.
@Prolaps-us
@Prolaps-us 4 ай бұрын
Событийный 😂😂😂 Цикл событий, диспетчер, рабочий цикл - но ни как не событийный.
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
Вот это да, полностью же меняется суть концепции, если назвать её чуточку иначе…
@Prolaps-us
@Prolaps-us 4 ай бұрын
@@AleksanderLamkov суть не меняется, меняется восприятие. название выглядит как кривой пиратский перевод с китайского.
@eobardmeef8166
@eobardmeef8166 2 ай бұрын
@@Prolaps-us во многих учебниках написано "Событийный цикл", например в learn.js.
@foxkodland9516
@foxkodland9516 4 ай бұрын
Ужас, как же сложно объясняешь несложные вещи 3/4 воды 😔
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
А конкретнее? Что именно я усложнил при объяснении? Уточни, пожалуйста.
@foxkodland9516
@foxkodland9516 4 ай бұрын
@@AleksanderLamkov привет! смотрел у тебя часовое видео по верстке с scss - это был лучший контент, который я видел на ютубе - сухо, по делу и с практикой здесь же затрагивается сразу много тем; не всегда понятно, зачем приводятся примеры и разные усложнения в виде таймеров, new Promise или информации об одном потоке, которая не раскрыта до конца. Сложные термины были озвучены без объяснений И есть слова, которые сбивают с толку, например, твой комментарий, что await заставляет ждать выполнение промиса - да, все это верно по документации, но когда слушаешь это в контексте потока, о котором ты говорил в начале, то непонятно, как именно это ожидание работает: останавливается весь код или интерпретатор работает с другими задачами? поймал себя на мысли к 20 минуте видео, что в голове каша, и ведущий поверхностно говорит о разных гранях асинхронности, хотя эту тему можно изложить лаконичнее и с практическими примерами. А здесь как будто пересказ статьи про async/await в js - технически все верно сказано, но такие объяснения сложны на мой коммент не серчай, успехов тебе)
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
Спасибо за развернутую критику! Тема урока непростая, упрощал как мог. В будущем постараюсь учесть моменты, на которые ты указал.
@Triplanar
@Triplanar 4 ай бұрын
Как всегда топ
@elkhanhuseinov9804
@elkhanhuseinov9804 4 ай бұрын
Это всё прекрасно. Автору несомненно большой респект за труд и помощь. Но весь материал по JS один и тот-же, вот если бы преподавали JS сразу на примере повседневных задач фронтенд разработчика - что бы пришло понимание, когда и где использовать тот или иной метод, но этого нигде нету.... Где найти такие курсы? Что бы и много лишнего не учить, и понимать как использовать все навыки на деле (создавая web-страницу к примеру).
@AleksanderLamkov
@AleksanderLamkov 4 ай бұрын
Это будет в мастер-классе. Невозможно создать такой курс с 0, где сразу же будут показываться боевые задачи фронтенд-разработчика. И в моем курсе нет, на мой взгляд, ничего лишнего. Всё, что я тут объясняю, применялось мною на практике за последние годы. Я как раз таки опускаю ненужные вещи, чтобы не забивать новичкам голову мусорной теорией.
@elkhanhuseinov9804
@elkhanhuseinov9804 4 ай бұрын
@@AleksanderLamkov ❤️👍🏼 Во всяком случае огромное вам спасибо
@miwanjaGR
@miwanjaGR 4 ай бұрын
Очень хорошо объяснил, благодарю)
Модули в JavaScript, import и export, декомпозиция кода
31:42
Александр Ламков — Friendly Frontend
Рет қаралды 4,6 М.
Просто o async, await. Без циклов и таймеров. JavaScript
15:55
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 101 М.
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 96 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue
12:35
Async Await vs. Promises - JavaScript Tutorial for beginners
24:30
Методы массивов JavaScript - forEach, map, filter, reduce, some, every, sort, includes, indexOf
27:47
Александр Ламков — Friendly Frontend
Рет қаралды 9 М.
Ключевое слово this в JavaScript для начинающих • this в объектах и функциях
14:50
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 96 МЛН