Гениально! Функция передана в качестве аргумента другой функции. Это самое простое объяснение, которое мне когда либо попадалось. Спасибо, до сих пор актуальная информация :)
@maxkrutov396 жыл бұрын
Просто нет слов, это самый лучший специалист по js и самый лучший преподаватель!!!!!
@itgid5 жыл бұрын
Спасибо за комментарий!
@itgid4 жыл бұрын
спасибо!
@TarasOstapiuk2 жыл бұрын
Алекс, уроков по JS в нете валом, но именно только тьі обясняеш правильно и понятно.
@Bazilio37912 жыл бұрын
Вчера сидел смотрел на callback как баран на новые ворота. Спасибо!
@angelikakhodzhaian78434 жыл бұрын
Неужели спустя невероятное количество часов крови, пота и попыток понять callback-и --- это удалось! Спасибо за урок! ⇧
@itgid4 жыл бұрын
рад что помог!!!
@shakhzod2352 жыл бұрын
Спасибо, понял функцию колбэк посмотрев ваш ролик
@oleksiykurylyuk46964 жыл бұрын
Первая функция всеравно отработала первой, (в ней 1 миллиард итераций) вторая дожидалась очереди. Время: 1.35 function aaaa() { let qq = 0; while (qq < 1000000000) { qq += 1; } console.log(qq); } function bbbb(){ console.log(2); } aaaa(); bbbb();
@ВладМухортов-э1з6 жыл бұрын
Очень понятно и доступно,много информации за короткий промежуток времени,большое спасибо!!
@itgid6 жыл бұрын
Спасибо за комментарий!
@span4ev6 жыл бұрын
Спасибо. Самые лучшие уроки. Ждём замыкания, прототипы и promise. Все эти страшные слова) а вы так понятно и просто объясняете, с живыми примерами, что любой поймёт) Как говорится, если учёный не смог что-то обьяснить ребёнку - он не учёный. Только здесь в контексте джаваскрипт
@span4ev6 жыл бұрын
Только не понял, почему в дальнейшем функция y() переставала выдывать ошибку?
@ДмитрийНормов-ю6ц3 жыл бұрын
@@span4ev , теперь понял? Потому что мы передавали вместе нее то, что надо - 2-ю функцию.
@ДенисСероштан-й6т6 жыл бұрын
Александр, спасибо! Самое доходчивое и понятное объяснение про callback. Хотелось бы увидеть урок про promise, ну и async/await по возможности
@JackSteamBoy Жыл бұрын
Как бы хотелось чтобы у меня препод в колледже был такой как вы, хоть я и закончил учебу 8 лет назад. Вы без капли преувеличения лучший!
@asylzhanb23254 жыл бұрын
Где же Вы были раньше... Лучшее объяснения которую когда-либо слышал, благодарю Вас!!
@MrReflection5406 жыл бұрын
Вы прирожденный учитель- умеете доходчиво подать информацию. *Друзья, пишите побольше комментариев, чтобы продвинуть видео. Чем быстрее поднимем канал, тем больше будет роликов*
@itgid6 жыл бұрын
Спасибо! Да, не забываем лайки ставить!
@Shanluu5 жыл бұрын
В начале не совсем понял про "порядок исполнения кода". Но всё же быстро изложу, как это на самом деле, для тех кто не понял, что имелось ввиду. Когда скрипт вызывает функцию - он добавляет её в call stack. Также туда попадают все фукнции, которые находятся внутри уже попавшей функции. Когда они отрабатывают - они убираются из call stack. Но есть такие вещи как : setTimeout, Ajax запросы и т.д - это уже функции WebAPI браузера , который помогает JS с работой. Функции внутри WebAPI после отработки попадают не в call stack, а в callback queue. Откуда они уже попадают в call stack через event loop, только после того, как call stack будет пуст.
@ЛёхаХанин6 жыл бұрын
Один из принципов функционального прогарммирования прировнять к колбэк функциям - это гениально.
@TabookiGoo6 жыл бұрын
Материал, речь - все огонь, спасибо большое )
@victortee52695 жыл бұрын
Очень понятно обьясняете. С шагами влево и вправо) спасибо!
@konstantinkkk83976 жыл бұрын
очень доходчиво! Снимите видео про замыкания, может хоть благодаря Вам смогу понять как они работают! За данное видео большое спасибо!
@itgid6 жыл бұрын
Спасибо. А про замыкания я уже говорил частично. Посмотрите предыдущие видео.
@17u5h2 жыл бұрын
очень хорошее объяснение. спасибо
@viktorys73604 жыл бұрын
Наконец-то простое и разжованое объяснение про callback. Спасибо))
@svitlana64202 жыл бұрын
Супер, у вас дар учителя!
@serdotsenko6 жыл бұрын
ничего писать не планировал, но когда досмотрел до конца, решил, что всётаки напишу ) спасибо я всё понял, продолжай ) лайк, подписка!
@itgid6 жыл бұрын
Спасибо!
@Tipuchek6 жыл бұрын
Ничего не буду писать. Хотя напишу) лучшая подача инфо. Спасибо)
@itgid6 жыл бұрын
спасибо!
@dimageorgiev57986 жыл бұрын
Четко и по существу без водички !
@fisher15213 жыл бұрын
Большое спасибо, за подробное объяснение!)
@atlantatesla93485 жыл бұрын
Спасибо большое за объяснение, вроде пишу на js, давно использую calback-функции, но сегодня задалась вопросом, а точно ли я знаю это определение, понимаю ли я, что именно входит в понятие calback-функций. Именно такие возвращения к истокам и понимание на очень простом уровне помогают более гибко и свободно использовать необходимые инструменты. Успехов и процветания вашему каналу)!!!
@itgid5 жыл бұрын
Спасибо! Очень приятно!
@macabrius91114 жыл бұрын
Большое спасибо за разъяснения. Лайк, подписка, всё как заведено))
@iliyabrook29334 жыл бұрын
Огромное спасибо! не хватало качественного разеснения о колбэках
@timoxin5 жыл бұрын
Очень подробно и понятно. СПАСИБО!
@itgid5 жыл бұрын
Спасибо!
@user-bu3hzj734e4r5 жыл бұрын
Офигеть какое хорошее объяснение и примеры. Спасибо! Уже подписываюсь
@yakut546 жыл бұрын
Спасибо, дядька! как всегда кратко, понятно и здорово! От души!
@АнтонВладыченко-с4д4 жыл бұрын
классно обьясняете! становится все понятно!
@MrColins7106 жыл бұрын
Пояснення супер, чітко і конкретно, дякую
@МуратОрозобаев5 жыл бұрын
А почему не соблюдает порядок выполнения функций. Это относится только к асих функци. То есть setTimeout, ajax или promise
@itgid5 жыл бұрын
господи, раз оговорился, теперь хоть видео удаляй.
@nugamsk4 жыл бұрын
Очень понятное объяснение! Спасибо
@PavelPogosov4 жыл бұрын
Огромное спасибо за ваш урок!!!
@blackch1p5 жыл бұрын
Отличные видео. Для донатов так же следует завести ЯД кошель:)
@valentinpetrenko66114 жыл бұрын
Все доходчиво и понятно. Спасибо
@yarik83men515 жыл бұрын
Просто + понятно + гениально ... Спасибо
@maximpodhorny28646 жыл бұрын
я приятно удивлен! Лайк, подписка!
@paljm345 Жыл бұрын
А почему не показали еще один способ передачи аргументов, типа такого: function first(y) { console.log(1); y(2, 4); } function second(a, b) { console.log(a + b); } first(second); Все так же работает. Мы же не просто так передаем колбек, да еще и с аргументами.
@oleksiykurylyuk46965 жыл бұрын
8.00. В 'y' ляжет, то что возвращает отработанная ф-ция Секонд?. Да, так и есть, проверил. В Вашем примере в 'y' записалось андефейнед. "use strict" function first(q){ console.log('first is done'); console.log(q); } let second = (a,b) => { console.log('second is done') return a*b}; first(second(3,5)) вывод в консоли: - second is done //первая отработала функция second(3,5), которую поместили аргументом в ф-цию first, после свой роботы и вывода в консоль, передала свой ретерн к вачестве аргумента ф-ции first - first is done //отработал первый консоль, ф-ции first - 15 // отработал второй консоль, ф-ции first, q - равно ретерну функции second
@kawaikaino52776 жыл бұрын
Запишите пожалуйста урок о вложенных функциях, как и что они возвращают через Return и как делятся аргументами
@itgid6 жыл бұрын
Если бы вы описали пример - смог бы записать.
@stasmaksimov95315 жыл бұрын
Круто! Спасибо 👍
@itgid5 жыл бұрын
Спасибо что оставляете комментарии!!!
@NarkotikAsd3 жыл бұрын
Что-то не понятно почему вы ожидаете выполнения первого лога когда вы изначально установили ему задержку по времени. соответственно этой задержке и выполняется порядок функций . поэтому 2 выполнился раньше первого. Спасибо....
@troubleshooters-67444 жыл бұрын
Интересно с первого ли раза записали, слишком превосходное объяснение!) Хотелось бы порекомендовать при записи и сравнении кода, Вы бы могли разделить экран VS CODE для более наглядного сравнения, имхо)
@FunnyLive3 жыл бұрын
Windows. setimout эта функция web API , дак вот по логике получается следующее. Когда вызывается функция сет таймаут то она помещает вызовов функций console.log в web API далее по истечению времени она возвращается в callback queue после чего в call stack. И функция first была вызвана первой потом settimout потом second потом console.log(2) и наконец только console.log(1) ибо она вернулась в стек из callback queue. И все это крутит event loop .Далее смотреть не стал.
@sergeyplotnikov50315 жыл бұрын
Большое спасибо за объяснение!!
@yarik83men514 жыл бұрын
Идеально. Спасибо.
@pandaskeptic29375 жыл бұрын
Очень хорошо объясняете. Всё понял. ❤️👍🔥
@maxb32544 жыл бұрын
Первые три минуты меня привели в замешательство, если честно. Глаза мои выпучились. Мир никогда не станет прежним, если это действительно правда. А нет. Мир не изменился :)
@fonzadof6 жыл бұрын
Великолепно!
@MrVertu013 жыл бұрын
Спасибо)
@manasbekeshenkulov73896 жыл бұрын
Все четко и понятно !!!
@weynemeynen3 жыл бұрын
как только first() будет чуть сложней, в начале выполниться second() !? js не обеспечивает порядок выполнения записанный в коде?! Что-за пурга?!
@Epenckorn4 жыл бұрын
Не совсем понятно про анонимную функцию. Почему с вызовом second() не работает, а с объявлением анонимки работает? Ведь что одна, что другая, ничего не возвращают.
@okujava36782 жыл бұрын
Доброго времени суток. А Вы можете объяснить каким образом значения параметров попадают в переменные n1 и n2. То есть можно как бы передавать параметры наверх function start(callback) { return callback(3, 5); } let result = start(function(num1, num2){ console.log(` Это параметры из колбэка: ${num1} ${num2}`); return num1 + num2; }) console.log(`Результат: ${result}`);
@ohnocringe56042 жыл бұрын
спасибо, объяснили понятно, только я не понял зачем нужен игрик??
@Tipok_155 жыл бұрын
ПОНЯТНО И ПРОСТО!!!!!!
@ВикторКулагин-ь2у6 жыл бұрын
Полезно!
@Retruntobase5 жыл бұрын
Самый первый человек, объяснение программы, которого я смог воспринять на русском языке)
@hooligan56433 жыл бұрын
🔥🔥🔥🔥
@RenatGF6 жыл бұрын
kzbin.info/www/bejne/faHZqGCim7uGrckm7s - Понятно, что ты хотел показать примером. Но тут пример не совсем корректный. Даже если в setTimeout указать 0ms, а функция second будет выполняться 500ms. То все равно выполнится сначала функция second, а потом только first. Потому что все то, что обернуто в setTimeout, будет выполняться в последнюю очередь
@indigosay5 жыл бұрын
нашли решение для этого вопроса? Чтобы second потом выполнялась
@Публичныйканал-с3м5 жыл бұрын
У вас отличные уроки. А где есть урок по анонимные функции?
@olena_andriienko4 жыл бұрын
лайк, если пришел посмотреть видео после статьи на hexlet )))
@EdritKolotit3 жыл бұрын
9 месяцев прошло. 0 лайков.
@erragon41745 жыл бұрын
Здравствуйте такой момент у меня first довольно долгая по выпонению функция, а second легкая и быстрая но все равно в консоле сначала выводиться first а потом second (не асинхронно) вот пример кода: let a = 0; function first() { for (var i = 0; i < 500000000; i++) { a=a+i; } console.log(a); } function second(a,b) { console.log(a*b); } first(); second();
@petrvictorovich2 жыл бұрын
"Способ борьбы с асинхронностью"!? А зачем с ней бороться? Это не проблема - а возможность.
@MiqayelPetrosyan4 жыл бұрын
можно и так first(()=>second(5,7))
@victordegtyarov96346 жыл бұрын
годно рассказал,спасибо!
@victor-zz6xn4 жыл бұрын
а почему бы не сделать вот так: function first(callback){ alert('f1') callback(4,7) } function second(a,b){ alert(a*b) } first(second) Здесь нам и не придётся делать анонимные функции и все выводится в порядке
@Bugsy09879873 жыл бұрын
Кстати да, я сделал так же, работает
@TheTexPro4 жыл бұрын
Спасибо большое!
@ultexplorer5 жыл бұрын
Здравствуйте. А почему в таком варианте не работает(результат undefined)? Код: function first(y){ y(); }; function second(a, b){ return a*b; }; console.log(first(function(){ second(100, 3); }));
@parvaqa13985 жыл бұрын
Здравствуйте! Спасибо за хорошие уроки! Но я всё никак не могу понять, в какой момент запись `y( )` внутри первой функции стала означать исполнить функцию `second`? Это происходит только потому что в качестве аргумента первой функции используется `y`? Т.е. если мы указали некий аргумент внутри круглых скобок первой функции, а потом его же вызываем в виде функции внутри фигурных скобок первой функции, то потом ниже, когда мы уже вызываем саму родительскую (высшего порядка) функцию, нам надо передать в качестве аргументов некую дургую функцию и НЕВАЖНО, что она тоже безымянная. Важно, что в её теле есть конкретная именная функция, которую браузер найдёт в коде и исполнит с заданными аргументами. ... Пока писал, сам понял, похоже.
@itgid5 жыл бұрын
Супер, когда читаю такие комментарии - радуюсь. Мы на работе тоже практикуем, если не знаешь как делать, расскажи другому задачу. Пока рассказываешь - сам начинаешь соображать.
@nicothin4 жыл бұрын
В самом начале ролика (2:00) есть очень странное утверждение, выглядящее ложным. Далее посыл ролика строится преимущественно на этом утверждении.
@ДмитрийНормов-ю6ц3 жыл бұрын
Да, тоже заметил чет не то)
@hondovod2502853 жыл бұрын
9:15, люди, подскажите, а что если заместо функции "обертки" аргументы 5 и 7 написать сразу в y(), которая в конце функции first??? Это работает. Но правильно ли будет такая запись??
@denystry4 жыл бұрын
а если будет function first(a,b,y){ return y(a,b); } function second(a,b){ return a+b; } first(2,3,second); Это тоже коллбек?
@GamerGuyMen3 жыл бұрын
Da
@goedekoop5015 жыл бұрын
немного не понял, когда её использовать ? ибо я ведь не всегда могу понять , корректно ли выведется или нет, немного туплю
@ПавелКапелюховский5 жыл бұрын
А почему вы пишите в функции first "у();" это то же самое, что и return(y) или console log (y) ?
@ДмитрийАлексеевич-л2д6 жыл бұрын
Донатим с миру по копеечке, чтоб было еще больше уроков
@digitalturkistan18575 жыл бұрын
согласен
@digitalturkistan18575 жыл бұрын
я бы миллионы кидал увы ...
@SunLightDH4 жыл бұрын
Да, все хорошо, но есть не важное замечание: функция принимает не параметр, а аргумент, (будь-то функция или ещё что), а внутри, в теле функции, параметр, то что принимает этот аргумент из скобок
@dmitrijponkin6 жыл бұрын
Спасибо!
@dali1ize5 жыл бұрын
Круто Спасибо
@EugeneMilto6 жыл бұрын
Спасибо.
@prsion19256 жыл бұрын
красавчик !! лайк подписка!!!
@dmytrolambru29846 жыл бұрын
Красава как обычно, все четко по делу! ))
@singlebw40655 жыл бұрын
/*Предполагаю что можно построить дерево из функций. ХЗ зачем, но мне кажется что все тыкают языки просто ради того, сможет ли язык сделать какую то херню, но потом не знает что с этим делать. */ function a( a ){console.log( 1) ;} function b( b ){console.log( 2 );} function c( c ){console.log( 3 );} function d( d ){console.log( 4 );} function e( e ){console.log( 5 );} function f( f ){console.log( 6 );} f( e( d( c( b( a() ) ) ) ) ); // короче обратный callback какой-то Вот ещё Всё читается справа налево. Сначала все функции смотрят что есть в аргументе, если там функция да ещё и вызвана, то выполнится она раньше чем вызывающая функция. Если закинуть функцию в конец всех аргументов, то можно и не указывать аргумент в прототипе вызывающей функции. Это тот вариант когда нужно вызвать функцию при этом другая функция тоже должна отработать function myFunc1( aa, bb ) { console.log( aa + bb ) ; }//NaN если ни чё не передать, но функция отработала 1й как и полагалось function myFunc2( a, b ) { console.log( a+b ); } myFunc2( 22, 38, myFunc1() ); Чё с передачей аргументов function myFunc3( myFunc_4 ) { console.log(11); myFunc_4( "Первый", " способ" ); }//заранее передать аргументы function myFunc4( a, b ) { console.log( a + b ); } myFunc3(myFunc4); ну или как показано в видео myFunc3( function ( ){ // ну как мы уже знаем. вызванная функция в аргументе срабатывает сразу, myFunc4("Второй"," способ"); } ); //положили в ячейку новые значения для этой функции
@erjan8164 жыл бұрын
7:52 "консль лох 1"? Или мне только так послышалось
@yaroslavzef72674 жыл бұрын
да, зачечал, что даже многие кто не с Украины обзываются на консоль лохом..
@englishtogether65063 жыл бұрын
а можно написать y(4,7) ?
@veavob25342 жыл бұрын
А можно просто там, где вызывается функция y() в first, на 9:39 минуте, просто в у записать параметры, я так сделал и у меня всё отработало без ошибок
@maxgloba_dev4 жыл бұрын
let request = (value, callback) => callback(value + 10); request(10, result => console.log(result));
@umjetnost43174 жыл бұрын
задержка в 200 мс не работает :( function one(y){ console.log("hello once"); y(); } function two(){ console.log("hello twonce"); } setTimeout (one(function(){ two(); }), 200);
@YashaVlazhniu4 жыл бұрын
05:08 а если консоль вывести через таймаут, все равно вторая функция первее ведь выполнится?
@Виталий-е9д5е5 жыл бұрын
все равно не понял... почему first(second(4, 7)); - так секонд сработает в первую очередь, а если first(function() {console.log(100)}); - так во вторую... В первом случае функция вызывается и отрабатывается сразу... А во втором почему не так?
@Виталий-е9д5е5 жыл бұрын
Я гений блин... доперло...
@ДмитрийНормов-ю6ц3 жыл бұрын
@@Виталий-е9д5е а ну расскажи?
@sens43815 жыл бұрын
А можно сделать просто, вот так? const f1 = (y) =>{ console.log(3); y(3,4); //Вот так объявить параметры? } const f2 = (a,b) => { console.log(a + b); } f1(f2)
@konstantinkkk83976 жыл бұрын
учил callback functions на английском ресурсе, и не могу понять как оно определяет чему равно el, ведь мы его нигде не задавали? var years = [1990, 1965, 1937]; function arrayCalc(arr, fn) { var arrRes = []; for (var i = 0; i < arr.length; i++) { arrRes.push(fn(arr[i])); } return arrRes; } function calculateAge(el) { return 2017 - el; } var ages = arrayCalc(years, calculateAge);
@SlonoKing6 жыл бұрын
В параметр el передается год рождения
@marharytahlinskaya11656 жыл бұрын
А как насчет такого вызова: function first(y){ console.log(3); y(3,6); } function sec(a,b){ console.log(a+b); } first(sec); ? Работает ведь, как и с анонимной.
@pavelsokolov41905 жыл бұрын
Вы передаёте параметры при определении функции, а не при вызове. Работать будет, но смысла в этом нет.
@kirillcherkalov24446 жыл бұрын
Помарочка, ф-я возвращает не ничего, а undefined.
@itgid6 жыл бұрын
Абсолютно верно. Если в функции нет return она возвращает undefined. В этом легко убедиться выполняя вычисления в консоли.
@danya92354 жыл бұрын
9:37 Как получается, что анонимная функция связана с second() ?!
@ДмитрийЧулков-ь1ч4 жыл бұрын
Danya автор просто привёл пример, что внутри обертки может быть функция без имени