Топ-5 заблуждений об работе JavaScript
#nodejs_api
На календаре пятница, а значит пора сбавить градус практичности. Сегодня поделюсь "перлам" с собеседований. Цель поста – ликвидация безграмотность.
👎Все логические операторы (&&, ||, !) возвращают булевы значения.
Вообще-то только ! возвращает Boolean.
Вопрос для выявления заблуждения, что будет выведено:
👎Расчет возвращаемого Promise-ом значения будет запущен при await.
Нет, он будет запущен в момент создания, т.е. как только мы создали Promise мы сразу запустили цепочку (promise chain). Где вы ставите await, и ставите ли, не имеет значения.
👎Все аргументы в функциях работают одинаково.
Как и в других языках программирования примитивные и ссылочные типы ведут себя по разному.
Вопрос для выявления заблуждения, что плохо в коде:
👎Обработка событий происходит асинхронно.
Ошибка характерна и для Node.js с Event Emitter, и для FE разработчиков с Browser Events. Event handler-ы работают синхронно, причем их порядок вызова зависит от порядка добавления.
👎JavaScript обладает идеальной точностью арифметики.
Уже столько раз писали, о том что
#nodejs_api
На календаре пятница, а значит пора сбавить градус практичности. Сегодня поделюсь "перлам" с собеседований. Цель поста – ликвидация безграмотность.
👎Все логические операторы (&&, ||, !) возвращают булевы значения.
Вообще-то только ! возвращает Boolean.
Вопрос для выявления заблуждения, что будет выведено:
console.log('0' && 3)👎Расчет возвращаемого Promise-ом значения будет запущен при await.
Нет, он будет запущен в момент создания, т.е. как только мы создали Promise мы сразу запустили цепочку (promise chain). Где вы ставите await, и ставите ли, не имеет значения.
👎Все аргументы в функциях работают одинаково.
Как и в других языках программирования примитивные и ссылочные типы ведут себя по разному.
Вопрос для выявления заблуждения, что плохо в коде:
function getTomorrow(d) { d.setDate(d.getDate() + 1); return d;}👎Обработка событий происходит асинхронно.
Ошибка характерна и для Node.js с Event Emitter, и для FE разработчиков с Browser Events. Event handler-ы работают синхронно, причем их порядок вызова зависит от порядка добавления.
👎JavaScript обладает идеальной точностью арифметики.
Уже столько раз писали, о том что
0.1 + 0.2 == 0.3 это false, что многие это зазубрили. Однако, об этом забывают в доменах, где ошибка округления критична (финансы и т.п.). В таких случаях стоит использовать BigInt или подобные решения.👍19🔥19
Chrome 98 - What’s New in DevTools
#worth_seeing
1 февраля будет следующий релиз Chrome. В нем будет много обновлений в инструментах разработчика. Чтобы быть в курсе предлагаю посмотреть 6 минутное видео или почитать текстовое описание.
Большинство новшеств орентированы на фронтенд разработку. Для #nodejs и fullstack разработчиков будут интересны:
👉 Back/Forward cache tab, чтобы убедиться что сервер отдает правильные заголовки
👉 связка document.designMode + Changes tab, чтобы отредактировать прямо в браузере и скопировать в исходный код.
Ссылки:
👀Видео
📕Текстовая версия
#worth_seeing
1 февраля будет следующий релиз Chrome. В нем будет много обновлений в инструментах разработчика. Чтобы быть в курсе предлагаю посмотреть 6 минутное видео или почитать текстовое описание.
Большинство новшеств орентированы на фронтенд разработку. Для #nodejs и fullstack разработчиков будут интересны:
👉 Back/Forward cache tab, чтобы убедиться что сервер отдает правильные заголовки
👉 связка document.designMode + Changes tab, чтобы отредактировать прямо в браузере и скопировать в исходный код.
Ссылки:
👀Видео
📕Текстовая версия
🔥11👍2❤1
What’s Next for the GraphQL Spec?
#worth_seeing #graphql
Сегодня в рекомендациях видео с GraphQL Summit - November 2021. Из всех видео с конференции я выбрал именно его по следующим причинам:
– Объяснение истории развития спецификации и текущего процесса ее обновления.
– Новинки в спецификации за октябрь 2021
– Для GraphQL cпецификация особенно важна, так как реализация клиентов и серверов делают на многих языках и платформах.
– Один из докладчиков Иван Гончаров, core maintainer graphql-js.
Ссылки
👀Видео
📕Спецификация
👉Полный плейлист GraphQL Summit - November 2021
#worth_seeing #graphql
Сегодня в рекомендациях видео с GraphQL Summit - November 2021. Из всех видео с конференции я выбрал именно его по следующим причинам:
– Объяснение истории развития спецификации и текущего процесса ее обновления.
– Новинки в спецификации за октябрь 2021
– Для GraphQL cпецификация особенно важна, так как реализация клиентов и серверов делают на многих языках и платформах.
– Один из докладчиков Иван Гончаров, core maintainer graphql-js.
Ссылки
👀Видео
📕Спецификация
👉Полный плейлист GraphQL Summit - November 2021
👍3
List of 1000 JavaScript Interview Questions
#list
Сегодня в рекомендациях большая подборка вопросов для JS-интервью с ответами. Список содержит как открытые вопросы, так и тесты на понимания работы кода. Некоторые вопросы морально устарелы, но в целом репозиторий можно рекомендовать для подготовки к собеседованию на JS позицию.
#list
Сегодня в рекомендациях большая подборка вопросов для JS-интервью с ответами. Список содержит как открытые вопросы, так и тесты на понимания работы кода. Некоторые вопросы морально устарелы, но в целом репозиторий можно рекомендовать для подготовки к собеседованию на JS позицию.
GitHub
GitHub - sudheerj/javascript-interview-questions: List of 1000 JavaScript Interview Questions
List of 1000 JavaScript Interview Questions. Contribute to sudheerj/javascript-interview-questions development by creating an account on GitHub.
👍28
Подборка node.recipes за январь 2022
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Что такое WICG?
➡️ Как TC39 предложения внедряются в TypeScript?
➡️ 15 Factor App
👉 Больше 100 share: Какие вопросы задать, чтобы проверить понимание Promise/async/await?
➡️ oclif.io – Open CLI Framework
➡️ Когда и как использовать navigator.sendBeacon?
➡️ 2021 JavaScript Rising Stars.
➡️ Как использовать assert для улучшения читабельности кода?
➡️ Как запустить Recorder в Chrome?
👉 Больше 100 share: Подборка книг для изучения TypeScript
➡️ Обновление Open Machine Learning Course
➡️ Как отследить работу Garbage Collector?
➡️ Как работать с Event Emitter в async/await стиле?
➡️ Подборка книг для изучения JavaScript
➡️ Как просто улучшить работу с git?
➡️ Тонкости работы с npm scripts
➡️ Как узнать является ли текущий файл точкой запуска?
➡️ Какие инструменты упрощают парное программирование?
➡️ Что такое RegExp Named Capture Groups?
👉Больше 100 комментариев: Топ-5 заблуждений об работе JavaScript
➡️ List of 1000 JavaScript Interview Questions
Стоит посмотреть:
👀Road to production
👀Application integration patterns for microservices
👀Advanced TypeScript Playlist by Basarat
👀Create an Application Backend in Clicks with the Amplify Admin UI
👀llhttp - new HTTP 1.1 parser for Node.js
👀Testing Pyramid Makes Little Sense, What We Can Use Instead
👀GitHub Actions с GitHub Universe 2021
👀How many hats should a DevRel wear?
👀Chrome 98 - What’s New in DevTools
👀What’s Next for the GraphQL Spec?
Стоит послушать или прошедшие Voice chat:
🎤About Best Practices, в гостях Алексей Бобырь
🎤About Software Engineering, в гостях Тимуром Шемсединовым
🎤About Conferences, с Александр Макхомед и Ирина Божик
🎤About Nest.js, с Михаилом Яли
Анонсы конференции:
👍Node Congress
👍TheJam.dev
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Что такое WICG?
➡️ Как TC39 предложения внедряются в TypeScript?
➡️ 15 Factor App
👉 Больше 100 share: Какие вопросы задать, чтобы проверить понимание Promise/async/await?
➡️ oclif.io – Open CLI Framework
➡️ Когда и как использовать navigator.sendBeacon?
➡️ 2021 JavaScript Rising Stars.
➡️ Как использовать assert для улучшения читабельности кода?
➡️ Как запустить Recorder в Chrome?
👉 Больше 100 share: Подборка книг для изучения TypeScript
➡️ Обновление Open Machine Learning Course
➡️ Как отследить работу Garbage Collector?
➡️ Как работать с Event Emitter в async/await стиле?
➡️ Подборка книг для изучения JavaScript
➡️ Как просто улучшить работу с git?
➡️ Тонкости работы с npm scripts
➡️ Как узнать является ли текущий файл точкой запуска?
➡️ Какие инструменты упрощают парное программирование?
➡️ Что такое RegExp Named Capture Groups?
👉Больше 100 комментариев: Топ-5 заблуждений об работе JavaScript
➡️ List of 1000 JavaScript Interview Questions
Стоит посмотреть:
👀Road to production
👀Application integration patterns for microservices
👀Advanced TypeScript Playlist by Basarat
👀Create an Application Backend in Clicks with the Amplify Admin UI
👀llhttp - new HTTP 1.1 parser for Node.js
👀Testing Pyramid Makes Little Sense, What We Can Use Instead
👀GitHub Actions с GitHub Universe 2021
👀How many hats should a DevRel wear?
👀Chrome 98 - What’s New in DevTools
👀What’s Next for the GraphQL Spec?
Стоит послушать или прошедшие Voice chat:
🎤About Best Practices, в гостях Алексей Бобырь
🎤About Software Engineering, в гостях Тимуром Шемсединовым
🎤About Conferences, с Александр Макхомед и Ирина Божик
🎤About Nest.js, с Михаилом Яли
Анонсы конференции:
👍Node Congress
👍TheJam.dev
👍33🔥5
В конце сентября я писал о том, что сделал для Foxminded курс по #nodejs. Подход к составлению курсов в компании – фокус на практику без разжевывания теории, которую гуглят только когда больно. Курс окончил бета тестирование и обзавелся лендингом.
После составления курса я сопровождаю менторов и даже вел пару студентов. Отзыв одного из них:
Вообще сейчас твой курс реально выглядит как одна из лучших инвестиций в самообразование за долгое время — разумная порция боли и хорошее ощущение прогресса 🔥
Курс ориентирован на новичков в Node.js. Идеально подходит для Frontend разработчиков, которые хотят стать FullStack.
👉Запись на курс тут
После составления курса я сопровождаю менторов и даже вел пару студентов. Отзыв одного из них:
Вообще сейчас твой курс реально выглядит как одна из лучших инвестиций в самообразование за долгое время — разумная порция боли и хорошее ощущение прогресса 🔥
Курс ориентирован на новичков в Node.js. Идеально подходит для Frontend разработчиков, которые хотят стать FullStack.
👉Запись на курс тут
Хороший код это простой код. Хороший код:
– просто читать
– просто повторно использовать
– просто, то есть без опасений, вносить изменения
На английском эти свойства звучат как Readability, Reusability и Refactorability...
Но мне пора остановиться. Иначе я начну пересказывать Ryan McDermott, который предложил реализацию Clean Code в JavaScript. Лучше прочитайте его в оригинале. У него есть два замечательных репозитория, в которых он объясняет зачем и как это делать.
Ссылки:
👉 Clean Code for JavaScript
👉 3 Rs of Software Architecture
– просто читать
– просто повторно использовать
– просто, то есть без опасений, вносить изменения
На английском эти свойства звучат как Readability, Reusability и Refactorability...
Но мне пора остановиться. Иначе я начну пересказывать Ryan McDermott, который предложил реализацию Clean Code в JavaScript. Лучше прочитайте его в оригинале. У него есть два замечательных репозитория, в которых он объясняет зачем и как это делать.
Ссылки:
👉 Clean Code for JavaScript
👉 3 Rs of Software Architecture
🔥29👍9❤2
Что такое Fetch Event Source?
#package #architecture
На канале был рецепт Что такое Race Condition на клиенте? В нем я рекомендовал использовать Server Sent Events. Это однонаправленный протокол от сервера к клиенту. Является отличной альтеранативой websocket-ам, которые являются двунаправленным протоколом.
На сервере все достаточно просто. Например, в Nest.js есть хорошая документация – server-sent-events. На клиенте все не так просто – у нативного браузерного
#package #architecture
На канале был рецепт Что такое Race Condition на клиенте? В нем я рекомендовал использовать Server Sent Events. Это однонаправленный протокол от сервера к клиенту. Является отличной альтеранативой websocket-ам, которые являются двунаправленным протоколом.
На сервере все достаточно просто. Например, в Nest.js есть хорошая документация – server-sent-events. На клиенте все не так просто – у нативного браузерного
EventSource API есть ряд ограничений: нельзя передавать custom headers, только Get. Правильной альтернативой является пакет @microsoft/fetch-event-source. Он одновременно обладает всеми фишками fetch и Server Sent Events. Рекомендую к использованию и сам протокол SSE, и клиентский пакет от microsoft. Кто знает, вдруг эту реализацию сделают встроенной в браузерные API.👍12
Я соскучился по оффлайн конференциям. К сожалению, первую Киевскую JS конфу – React fwdays’22 – я пропускаю. Он пройдет в формате Online+Offline 26 февраля. Также будет несколько дополнительных эфиров в будние дни.
Программа сформирована на 40%. Вот доклады, которые мне было бы интересней всего:
🎤 Glenn Reyes выступит с докладом “Drawing the line between 3rd party and custom code”
🎤 Виктор Турский будет рассказывать о “Эффективной разработке с React”
🎤 Юлия Потапенко о ”Безопасности криптокошельков”
Конференция пройдет в гибридном формате с тремя вариантами участия:
1️⃣FREE ONLINE – просмотр докладов в free online треке (26 февраля)
2️⃣FULL ONLINE – просмотр докладов во всех треках (26 февраля) и дополнительных форматах, доступ к записям всех эфиров
3️⃣OFFLINE & ONLINE – все пункты, которые есть в пакете full online, а так же offline участие 26 февраля
👉Регистрируйтесь бесплатно или используйте промокод на скидку 7% - 66BD1D1B54.
👉Детали по ссылке https://bit.ly/3J58VKB
Программа сформирована на 40%. Вот доклады, которые мне было бы интересней всего:
🎤 Glenn Reyes выступит с докладом “Drawing the line between 3rd party and custom code”
🎤 Виктор Турский будет рассказывать о “Эффективной разработке с React”
🎤 Юлия Потапенко о ”Безопасности криптокошельков”
Конференция пройдет в гибридном формате с тремя вариантами участия:
1️⃣FREE ONLINE – просмотр докладов в free online треке (26 февраля)
2️⃣FULL ONLINE – просмотр докладов во всех треках (26 февраля) и дополнительных форматах, доступ к записям всех эфиров
3️⃣OFFLINE & ONLINE – все пункты, которые есть в пакете full online, а так же offline участие 26 февраля
👉Регистрируйтесь бесплатно или используйте промокод на скидку 7% - 66BD1D1B54.
👉Детали по ссылке https://bit.ly/3J58VKB
👍6😢1
#announcement
На этой неделе #voice_chat будет с Виктором Турским, Senior Software Engineer at Google, Non-Executive Director at WebbyLab, автором @jabascript.
Когда: в четверг, 10 февраля, в 21:00 по Киеву
Где: https://xn--r1a.website/node_recipes?voicechat
Агенда будет составлена на основание ваших вопросов из комментариев к этому посту.
До встречи в эфире!
На этой неделе #voice_chat будет с Виктором Турским, Senior Software Engineer at Google, Non-Executive Director at WebbyLab, автором @jabascript.
Когда: в четверг, 10 февраля, в 21:00 по Киеву
Где: https://xn--r1a.website/node_recipes?voicechat
Агенда будет составлена на основание ваших вопросов из комментариев к этому посту.
До встречи в эфире!
👍15❤2
#announcement
В этот четверг, 10 февраля, я буду на стриме у Сергея Немчинского. Будем обсуждать Cloud Native и Node.js.
⏰ Начало в 15:00 по Киеву.
👉 Смотреть тут
В этот четверг, 10 февраля, я буду на стриме у Сергея Немчинского. Будем обсуждать Cloud Native и Node.js.
⏰ Начало в 15:00 по Киеву.
👉 Смотреть тут
👍16🔥11
Что нового в Nodejs 16.14.0?
Вчера вышел минорный патч для LTS версии. Основным заявленным изменением является обязательное использование Import Assertions (stage 3) с JSON-модулями. Это решение было принято для сохранения совместимости с веб-платформой. Т.е. это изменение важно для FE разработчиков.
В релизе есть новые важные фичи для #nodejs разработчиков, которые упрощают разработку. Обратите внимание, что они имеют Experimental индекс стабильности. Т.е. вы их можете использовать в проде только на свой страх и риск.
👉 Улучшение работы Readable Streams
Добавленые filter и map, а так же helper isReadable. Удобство работы со встроенными стримами становиться сопостовимо с rxjs.
👉 Улучшение работы AbortSignal
Добавили
👉 process.getActiveResourcesInfo
Раньше чтобы посмотреть, что держит активным EventLoop необходимо было использовать недокументированные process._getActiveResources().
👉 Scheduler в promise timers
Является Node.js реализацией предложения Prioritized Task Scheduling. Позволяет писать:
Очевидно, улучшает синтаксис
Официальные release notes тут
Вчера вышел минорный патч для LTS версии. Основным заявленным изменением является обязательное использование Import Assertions (stage 3) с JSON-модулями. Это решение было принято для сохранения совместимости с веб-платформой. Т.е. это изменение важно для FE разработчиков.
В релизе есть новые важные фичи для #nodejs разработчиков, которые упрощают разработку. Обратите внимание, что они имеют Experimental индекс стабильности. Т.е. вы их можете использовать в проде только на свой страх и риск.
👉 Улучшение работы Readable Streams
Добавленые filter и map, а так же helper isReadable. Удобство работы со встроенными стримами становиться сопостовимо с rxjs.
👉 Улучшение работы AbortSignal
Добавили
abortSignal.reason и AbortSignal.timeout(delay)👉 process.getActiveResourcesInfo
Раньше чтобы посмотреть, что держит активным EventLoop необходимо было использовать недокументированные process._getActiveResources().
👉 Scheduler в promise timers
Является Node.js реализацией предложения Prioritized Task Scheduling. Позволяет писать:
import { scheduler } from 'timers/promises';await scheduler.wait(1000);Очевидно, улучшает синтаксис
setTimeout из timers/promises.Официальные release notes тут
🔥35👍1
Audio
#voice_chat About Work at Google c Виктором Турским, Senior Software Engineer at Google, Non-Executive Director at WebbyLab, автором @jabascript.
Ссылки упомянутый в ходе дискуссии:
🔗 Эффективная разработка NodeJS приложений
🔗 Node.js starter от Виктора
🔗 my-talks.net – сервис где можно подписаться на докладчиков, сделанный Виктором
🔗 www.algoexpert.io – платный сервис для подготовки к интервью
Ссылки упомянутый в ходе дискуссии:
🔗 Эффективная разработка NodeJS приложений
🔗 Node.js starter от Виктора
🔗 my-talks.net – сервис где можно подписаться на докладчиков, сделанный Виктором
🔗 www.algoexpert.io – платный сервис для подготовки к интервью
🔥18👍11❤1🥰1
Что такое npm overrides?
#cli #npm
Делая обзор Nodejs 16.14.0, я не рассказал об обновление версии npm с 8.1.2 до 8.3.1. Основной фичей обновления является
Подробней в ссылках:
🔗 npm overrides
🔗 yarn resolutions
#cli #npm
Делая обзор Nodejs 16.14.0, я не рассказал об обновление версии npm с 8.1.2 до 8.3.1. Основной фичей обновления является
overrides, т.е. переопределение версий пакетов в зависимостях второго+ уровня. Это аналог resolutions в yarn. Чаще всего это нужно, чтобы заменить версию зависимости с известной проблемой безопасности. Реже, чтобы везде использовать одна и ту же версия пакета. Теперь npm догнал yarn не только по скорости, но и по необходимым фичам.Подробней в ссылках:
🔗 npm overrides
🔗 yarn resolutions
👍24🎉3
В прошлом году я делал рецепт Как документировать логику? в котором рекомендовал использовать в коде и документации PlantUML. Его наиболее близкий конкурентом является Mermaid, который тоже позволяет описывать диаграммы в текстовом виде.
На этой неделе GitHub объявил о поддержке mermaid код блоков. Теперь вы можете использовать диаграммы в вашей документации и GitHub issues. Пример на картинке или по ссылке в GitHub блоге.
На этой неделе GitHub объявил о поддержке mermaid код блоков. Теперь вы можете использовать диаграммы в вашей документации и GitHub issues. Пример на картинке или по ссылке в GitHub блоге.
👍31🔥14
Какие вопросы задать, чтобы проверить понимание Nodejs perfomance?
#list
Сегодня поделюсь подборкой моих вопросов для интервью по работе с оптимизацией Node.js perfomance. Естественно без ответов, иначе как мне потом их на собеседованиях спрашивать.
1. Какие метрики Node.js процесса вы используете? Как их собираете?
2. Что такое Еvent Loop Latency? Как он рассчитывается?
3. Покажите в вашем коде где вы конфигурируете database connection pool? Как он работает и за что отвечает?
4. Какие способы измерения latency http ответов вы знаете?
5. Каким образом вы определяете bottleneck в вашей системе в целом? А в коде?
6. DevOps команда выдвинула гипотезу, что приложение тормозит из-за логирования. Каким образом вы будете проверять эту гипотезу?
7. Назовите способы ускорения Node.js приложения, которые вы использовали.
#list
Сегодня поделюсь подборкой моих вопросов для интервью по работе с оптимизацией Node.js perfomance. Естественно без ответов, иначе как мне потом их на собеседованиях спрашивать.
1. Какие метрики Node.js процесса вы используете? Как их собираете?
2. Что такое Еvent Loop Latency? Как он рассчитывается?
3. Покажите в вашем коде где вы конфигурируете database connection pool? Как он работает и за что отвечает?
4. Какие способы измерения latency http ответов вы знаете?
5. Каким образом вы определяете bottleneck в вашей системе в целом? А в коде?
6. DevOps команда выдвинула гипотезу, что приложение тормозит из-за логирования. Каким образом вы будете проверять эту гипотезу?
7. Назовите способы ускорения Node.js приложения, которые вы использовали.
👍30😱3🔥1🥰1
Куда развивается Reactive Programming в Node.js?
TL;DR; С выходом 18-й LTS версии встроенные Node.js Streams станут альтернативой RxJS.
Начну с определения: реактивное программирование – это парадигма программирования ориентированная на потоки данных. Т.е. вместе операций над статическими данными, мы оперируем потоками. Упрощенно говоря, поток данных это массив, где каждый элемент имеет привязку к временной оси.
В javascript комьюнити основной тренд реализации реактивного программирования это RxJS. Основной драйвер это развития Angular. Nest.js, созданный на его основе, работает с RxJS из коробки. Так Interceptors построены именно на RxJS.
Реализовывать подходы реактивное программирования на чистых Node.js Streams требует много самописного кода или использование библиотек, которые не так развиты/поддерживаются как RxJS. Однако в 16.14.0 версии Node.js были добавлены filter и map для работы с Readable Streams. В экспериментальной ветке (17-ой) реактивных методов больше:
– readable.forEach(fn[, options])
– readable.toArray([options])
– readable.some(fn[, options])
– readable.find(fn[, options])
– readable.every(fn[, options])
– readable.flatMap(fn[, options])
– readable.drop(limit[, options])
– readable.take(limit[, options])
– readable.asIndexedPairs([options])
– readable.reduce(fn[, initial[, options]])
До выхода 18-й версии в LTS, что произойдет в октября 2022, их станет больше. Надеюсь, их Stability Index переведут из экспериментального в стабильный.
TL;DR; С выходом 18-й LTS версии встроенные Node.js Streams станут альтернативой RxJS.
Начну с определения: реактивное программирование – это парадигма программирования ориентированная на потоки данных. Т.е. вместе операций над статическими данными, мы оперируем потоками. Упрощенно говоря, поток данных это массив, где каждый элемент имеет привязку к временной оси.
В javascript комьюнити основной тренд реализации реактивного программирования это RxJS. Основной драйвер это развития Angular. Nest.js, созданный на его основе, работает с RxJS из коробки. Так Interceptors построены именно на RxJS.
Реализовывать подходы реактивное программирования на чистых Node.js Streams требует много самописного кода или использование библиотек, которые не так развиты/поддерживаются как RxJS. Однако в 16.14.0 версии Node.js были добавлены filter и map для работы с Readable Streams. В экспериментальной ветке (17-ой) реактивных методов больше:
– readable.forEach(fn[, options])
– readable.toArray([options])
– readable.some(fn[, options])
– readable.find(fn[, options])
– readable.every(fn[, options])
– readable.flatMap(fn[, options])
– readable.drop(limit[, options])
– readable.take(limit[, options])
– readable.asIndexedPairs([options])
– readable.reduce(fn[, initial[, options]])
До выхода 18-й версии в LTS, что произойдет в октября 2022, их станет больше. Надеюсь, их Stability Index переведут из экспериментального в стабильный.
👍36🔥14👎1🤔1