John
(async () => { ... })();
Супер, спасибо
Dmitry
видел кто нибудь слайдер на сайте mountaindew (тот что внизу)? вопрос: есть ли пример реализации такого слайдера?
refreak
Товарищи, при быстром клики по кнопка слайдера, сам слайдер зависает. Это нормальное явление на быстрые клики или нет?
Dmitry
отрыл у них на сайте исходник скрипта, так там 27к строк, и скрипт в себе содержит все что только можно, и код сайта, и библиотеки
Dmitry Kichev
ребя накидайте пожалуйста годных тулзов для дебага ангуляр 1.5 приложения, особенно важно – это момент начальной загрузки, то есть генерация html.. тут что-то не понимаю как вообще дебагать..
Rafael 🌵
@ZeroBias
Michael
Доброе утро. Пожскажите, есть ли какая-то тулза, которая покажет в выполняемом в браузере коде, где есть возможные потери производительности. А то код большой и вдруг что-то пропустил...
Igor
Девтулзы хрома. Есть вкладка performance.
👨🏼‍💻
Девтулзы хрома. Есть вкладка performance.
Ну или сеепшоты мэмори или цпу
Anatoly
в хроме 60 сильно улучшили эту утилиту
Ruslan
С async/await всё просто: подставляешь к функции async и она всегда будет возвращать промис, а await просто позволяет ожидать выполнения промисов внутри этой функции
Ruslan
А если у тебя функции с коллбэками, то тебе нужно их промифицировать. Для этого есть util.promisify. Если нужно промифицировать все методы в объекте, то юзай либы типа doasync или pify
Smooth Operator
или начни уже использовать реактивное программирование
Michail
Вопрос как сделать красивее - есть 2 объекта, один или оба могут быть пустыми. Поля, если есть объектов - массивы. Надо собрать в объект один все из содержимое, если есть
Michail
Что то вроде zip для объектов
Michail
Что за странный setup - так было написано до меня, это трогать не могу
Ruslan
Содержимое чего? массивов?
Michail
Содержимое объектов, да массивы на каждом ключе собрать в один
Michail
Гений) массивы перезапишутся
Ruslan
Это ты поздно уточнил
Michail
Это ты пишешь быстрее чем думаешь 😂
Michail
Я лучше ничего не придумал чем сложить список нужных полей отдельно и проходить по объектам и спрашивать есть ли там чо и если да - concat
Rafael 🌵
Есть же либка deepmerge
Костя
Писец как это тяжело читать
Костя
Можно же хоть иногда знаки препинания ставить?
Michail
Можно, обычно ставлю, тут что то
Michail
Есть же либка deepmerge
Как идея ок, но я очень очень не хочу в существующую кодбазу подключать либо только из-за этого
Michail
Дело не в весе, а introducing extra dependancy, проект и так гигантский легаси
Michail
Вобщем vanilla implementation
Rafael 🌵
Ну и зря ограничиваешь себя
Michail
😂
Rafael 🌵
Надо вести развязный образ жизни
Michail
Надо вести развязный образ жизни
😂 там где я живу это само собой разумеется. Хоть на работе позадротствовать хочется
Rafael 🌵
Ну серьезно, 1кб это ни о чем разговор
Rafael 🌵
Особенно если есть сборщик или юзаете http2
Igor
Да хорош, это же просто рекурсивный for
Michail
Да хорош, это же просто рекурсивный for
Ну я так и сделал примерно. Просто выглядит массивно для простой задачи которую решает. Вот и пишу в поисках тез кто на codewars в одну строку такое делает 😀
Smooth Operator
Хочешь? могу в одну строку
перенос строк уберешь?
Ruslan
Ага, но для наглядности вот тебе: const obj1 = { reh: [12412,214,24,214,2,4,21], hr: [346,346,436,1], } const obj2 = { reh: [547547,547,547], hr: [4745,457,45,7,45,7,5], rg: [346,347] } function fn(obj1, obj2){ return [...new Set([ ...Object.keys(obj1), ...Object.keys(obj2) ])].reduce((result, key) => { result[key] = [ ...new Set([...obj1[key] || [], ...obj2[key] || []]) ]; return result; }, {}); } fn(obj1, obj2)
Ruslan
Можно в консольку скопипастить
Smooth Operator
Почему deep
Ruslan
на один уровень в глубь
Smooth Operator
это не deep :D
Ruslan
исправил на fn, это @mkuznetcov пусть выбирает имя
Michail
В массива строки
refreak
Товарищи, выручайте. Зависает слайдер при быстро клики по его кнопкам. Как исправить?
refreak
Откуда надо
Sergey
Откуда надо
Голову прочисти. И допри уже. Что НИКТО НЕ ЗНАЕТ!
refreak
Жаль
Michail
Можно в консольку скопипастить
Спасибо, мне понравилось использование new Set чтобы можно было и obj1==null передавать
refreak
спасибо
Sergey
🤦‍♂
Sergey
Если зависает, значит косяк в коде
Ruslan
Ну может у него при быстроклике несколько раз функция отрабатывает, а код ok
Sergey
Ну
Sergey
Зависать от этого не должно
Sergey
Должно быстро быстро двигать
CherryTea
даже гугл косячит
Ruslan
Там же скрипт third_party.js, так что ответственность снята)
CherryTea
да не, у них что то с бэком отечающим за пользовательские карты
CherryTea
Ruslan
https://refactoring.guru/ru/refactoring/catalog
Ruslan
Дело не в весе, а introducing extra dependancy, проект и так гигантский легаси
Ты боишься добавить extra dependency в ноде? Загляни в node_modules - от того что ты добавишь туда ещё один модуль, картина не поменяется: ты и так зависишь от херовой тучи говёных модулей
Ruslan
Можно просто версию зафиксировать, если очко жмёт
Ruslan
Просто у меня тоже был этот дурацкий страх - сильно замедляет разработку
Ruslan
Разве вы не на сервере всё пишете, а потом собираете билд и деплоите на фронт?