CodeRoll | Frontend
Open in Telegram
OZ — Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги — Веб-разработка на JS, HTML, CSS, React, Vue,Angular Купить рекламу: https://telega.in/c/coderoll Чат: https://t.me/coderoll_chat По всем вопросам пишите сюда - @yankovsky_ads
Show more4 233
Subscribers
+124 hours
-57 days
-4930 days
Posts Archive
4 230
Вопросы с собеседования: Promise.all
Очень часто на собеседованиях любят давать заданию что бы собеседуемый написал свою реализацию
Promise.all, эту задачу я встречал во многих крупных компаниях. И хотелось бы поделиться с вами решением этой задачи с подробным объяснением.
Для начала вспомним работу оригинального Promise.all.
Он принимает коллекцию промисов, начинает одновременно их выполнять и возвращает новый промис. Если все переданные промисы выполнятся, возвращаемый промис тоже выполнится и в нём будет лежать массив результатов, причём в том же порядке. Но! Если какой-то промис вылетел с ошибкой, то Promise.all прекращает работу раньше и возвращаемый промис будет отклонён.
Таким образом у нас есть два сценария:
Позитивный: Когда все промисы завершились успешно. Тут в ответ придёт массив результатов с сохранением очерёдности.
Негативный: Когда какой-то промис завершился с ошибкой. Тут Promise.all не будет ждать завершение оставшихся, а сразу перейдёт в состояние rejected с полученной ошибкой.
Сначала попробуйте решить самостоятельно, можете написать свое решение в комментариях
Случай, когда у нас произошла ошибка, обрабатывать отдельно не нужно — возвращаемый промис автоматически перейдёт в состояние rejected.
// На вход к нам приходит массив промисов
Promise.all = (promises) => {
// Здесь будем хранить результаты успешно завершенных промисов
const results = []
// Количество промисов, которые осталось выполнить
// На данный момент не выполнился еще ни один промис!
let rest = promises.length
// Возвращаем, естественно, новый промис
return new Promise((resolve) => {
// Проходимся по списочку
promises.forEach((promise, index) => {
promise
// Если промис завершается успешно
.then((result) => {
// Кладём его в наше хранилище
// Причём сохраняем индекс, под которым он был в массиве `promises`
results[index] = result
// На один невыполненный промис стало меньше!
rest -= 1
// Если активных промисов больше нет, то резолвим результат
if (rest === 0) resolve(results)
})
})
})
}
Coderoll | Frontend4 230
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
4 230
🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊
Каналы с IT мероприятиями
Подписывайся,
чтобы не пропустить 👨💻
1. IT мероприятия для стажеров и студентов
2. IT мероприятия по РФ
3. IT мероприятия и хакатоны
4. Бесплатные IT мероприятия
5. IT мероприятия онлайн
6. IT мероприятия Москва
7. IT мероприятия Санкт Петербург
4 230
✈️ Углублённый курс по JavaScript [2024, RU]
Курс рассчитан на разработчиков, уже знакомых с основами языка и желающих углубить свои знания. Здесь вы освоите продвинутые темы для того, чтобы использовать все крутые возможности JavaScript. Особое внимание уделяется переменным и функциям, Event Loop и асинхронности, ООП, Symbol, Reflect, Proxy, Map и Set, итераторам, модулям и другим важным особенностям JavaScript.🔤 Скачать курс 🔤 Coderoll | Frontend
4 230
Дима Билан на Yandex Ecom Open Air 8 августа
Море инсайтов для бизнеса, музыкальный open-air, лекции и нетворкинг.
Участие бесплатно!
Зарегистрироваться
#реклама 18+
ecomfest.ru
О рекламодателе
4 230
❓ Как работает метод some?
Ответ:
Метод some проверяет, удовлетворяет ли хотя бы один элемент массива заданному условию. Если хотя бы один элемент соответствует условию, метод возвращает true, иначе — false.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
4 230
👩💻 В сеть вывалилась гигантская куча курсов и книг от топовых IT‑школ
Держи сотни гигабайт свежих уроков, и каждую неделю мы подкидываем ещё!
1402 ГБ — Python
1815 ГБ — Frontend
1515 ГБ — Backend
1300 ГБ — C / C++
694 ГБ — Java
546 ГБ — SQL & БД
411 ГБ — DevOps
898 ГБ — ИБ & Хакинг
212 ГБ — JavaScript
996 ГБ — Kotlin / Swift
173 ГБ — PHP
215 ГБ — GoLang
185 ГБ — Rust
517 ГБ — Linux
115 ГБ — QA / Тестирование
419 ГБ — GameDev
319 ГБ — 1C + Лицензии
617 ГБ — Машинное обучение
687 ГБ — Аналитика Данных
998 ГБ — Дизайн
Подписывайся и не плати за то, что можно получить бесплатно
4 230
❓ Как работает метод map?
Ответ:
Метод map создаёт новый массив, применяя указанную функцию к каждому элементу исходного массива. При этом исходный массив не изменяется.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
4 230
Регистрируйтесь на Yandex Ecom Open Air 8 августа
Море инсайтов для бизнеса, музыкальный open-air, лекции и нетворкинг.
Участие бесплатно!
Зарегистрироваться
#реклама 18+
ecomfest.ru
О рекламодателе
4 230
Deno — это новый инструмент для работы с JavaScript и TypeScript от создателя Node.js
Deno позиционируется как безопасная альтернатива Node.js с улучшенными возможностями для работы с модулями и встроенным TypeScript. Имеет улучшенную безопасность благодаря контролю за доступом к файлам, сети и процессам.
👀 Читать доку
Coderoll | Frontend
4 230
❓ Что такое Symbol в JavaScript?
Ответ:
Symbol — это уникальный и неизменяемый тип данных, часто используемый как уникальный идентификатор для свойств объектов. Каждый вызов Symbol() создаёт новый уникальный символ.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
4 230
❓ Что такое Lazy Loading?
Ответ:
Lazy Loading — это техника отложенной загрузки ресурсов (например, изображений или скриптов), когда они загружаются только тогда, когда становятся необходимыми (например, при прокрутке страницы). Это улучшает производительность приложения.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
4 230
Разбираем вопрос с FrontEnd-собеседования 👨💻
Опишите шаблон проектирования "Модуль" в JavascriptКак лучше ответить: Модули JavaScript являются наиболее часто используемыми шаблонами проектирования для сохранения отдельных фрагментов кода независимыми от других компонентов. Это обеспечивает хорошую структурированность кода. Модули должны быть функциями, вызываемыми прямо на месте (IIFE, Immediately-Invoked-Function-Expressions), чтобы обеспечить приватные области действия, то есть замыкание, которое защищает переменные и методы. Вот как примерно это может выглядеть:
// declare private variables and/or functions
return {
// declare public variables and/or functions
}
})();
Здесь мы создаем экземпляры приватных переменных и/или функций перед возвратом нашего объекта, который мы хотим вернуть. Код за пределами нашего замыкания не может получить доступ к этим приватным переменным, поскольку он не находится в той же области действия.
Coderoll | Frontend4 230
ProBizVPN - Новости. Технологии. Нейросети.
⚡ Новости Интернета, РКН, нейросетей.
📱 Все, что связано с доступностью Сети, сбоями, блокировками, взломами.
📊 События, ситуации, реакции.
🏃♂️ Новинки нейросетей, технологий, робототехники.
Узнать больше
#реклама 16+
О рекламодателе
4 230
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
4 230
❓ Что такое Module Pattern?
Ответ:
Module Pattern — это паттерн проектирования в JavaScript, который позволяет создавать модули с приватными переменными и методами, используя замыкания.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
4 230
TanStack Query – must-have для работы с API
Библиотека, которая делает работу с серверными данными в React и Vue в разы проще. Кэширование, рефетчинг, автоматические обновления – все на высшем уровне. Забудь про useEffect и стейты для загрузки данных!
👀 Попробовать
Coderoll | Frontend
4 230
Пассворк 7: новый взгляд на управление паролями
Пассворк 7 — самое масштабное обновление корпоративного менеджера паролей от российского разработчика ИБ-решений.
Почему выбирают Пассворк 7
• Полнофункциональный API для автоматизации всех процессов
• Новый интерфейс с быстрой навигацией и наглядной структурой сейфов
• Гибкие роли и группы для точного контроля доступа
• Детальная история всех действий в системе
• Автоматические оповещения в реальном времени
• Интеграция с SIEM, CLI-утилита и Python-коннектор
• Поддержка PostgreSQL и Pangolin
Пассворк подходит для компаний любого размера — от небольшого бизнеса до корпораций, ведь надёжная защита данных нужна всем. Пассворк — основа информационной безопасности.
Протестируйте Пассворк 7 бесплатно
Попробовать
#реклама 16+
passwork.ru
О рекламодателе
4 230
🕊🕊🕊🕊🕊🕊🕊🕊🕊🕊
Каналы с IT мероприятиями
Подписывайся,
чтобы не пропустить 👨💻
1. IT мероприятия для стажеров и студентов
2. IT мероприятия по РФ
3. IT мероприятия и хакатоны
4. Бесплатные IT мероприятия
5. IT мероприятия онлайн
6. IT мероприятия Москва
7. IT мероприятия Санкт Петербург
4 230
❓ Что такое замыкание (closure) в JavaScript?
Ответ:
Замыкание — это функция, которая имеет доступ не только к своим собственным переменным, но и к переменным из внешней области видимости, даже после того, как внешняя функция завершила свою работу. Замыкания полезны для создания приватных переменных и функций, а также для работы с коллбэками и таймерами.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Available now! Telegram Research 2025 — the year's key insights 
