RXJS v7.0.0 был выпущен всего несколько дней назад, после более чем один год длиной бета-версии. Это, безусловно, самая используемая библиотека реактивного расширения, используемая для JavaScript с загрузкой ~ 24 миллиона в неделю. NPM -страница
До сих пор нет удаления, но много деформаций – которые будут удалены позже – поэтому рекомендуется выделить время для обновления RXJS!
Какие новости
Это не так много обновления, которое было предыдущим обновлением основных пакетов, но между версией 6 и семью есть несколько заметных различий, давайте поближе посмотрим.
Меньший размер пачки
Стоит тот, что весь пакет прошел через создатели, чтобы проверить, где есть возможности – в конце – уменьшить размер пакета. Там не было никакого крупного рефактора с приложением – как я видел и читал.
Возможно, уменьшение размера не так выдается, но каждый КБ считается медленной сетью, особенно на мобильной связи. Вы можете увидеть тенденцию к снижению на графике, это хороший путь.:)
Вы можете проверить размер пакета здесь, на Bundlephobia Анкет
Последние интерференции TypeScript & Letter Type
RXJS использует новейший TypeScript (по состоянию на 2021.05.06), а также имеет некоторые реальные улучшения, мешающие различным типам. Ограничение, что около 7/8 аргумента RXJS не смог обращаться с типами, больше не существует!
Есть еще один пример для этого, давайте посмотрим на это.
of(new Date(), null, undefined) .pipe(filter(Boolean)) .subscribe();
Теперь тип будет Наблюдаемое <дата> , но это было Наблюдаемое <неопределенное> в RXJS 6.
Топромис Университет
Возможно, это не имеет значения для кого -то, но от этого может быть затронуто много проектов. Topromise устарел в RXJS 7, и есть два новых оператора, заменяющих этот, называемый FirstValueFrom и LASTVALUEFROM . Это огромное улучшение для надежности для многих кодовых баз.
Как указывает имя, FirstValueFrom Решает с первым значением потока и LASTVALUEFROM Вернуться с последним значением из наблюдаемого потока. Если не испускаются значения, ошибка выбрасывается. В отличие от Topromise, который решается просто с неопределенным.
Операторы переименованы
Я помню, что у нас была дискуссия с командой: «Желаю, чтобы у операторов в RXJ было более разговорчивые имена». Это случилось, так что следующие операторы переименованы
- CombineLatest -> CombineLateStwith
- Merge -> слиться с
- Zip -> Zipwith
- concat -> Concatwith
- гонка -> гонка с
Оператор повторной попытки с ResetOnsuccess
Ранее параметр оператора повторной попытки не был сброшен после успешных попыток. Теперь есть параметр конфигурации, чтобы указать это.
...
retry({ count: 2, resetOnSuccess: true })
...
Удаление нескольких вариантов обратного вызова
В RXJS 7 многократный обратный вызов для выполнения, ошибка, завершение была удалена из Нажмите и подписываться . Теперь вам нужно передать объект для этой конфигурации, просто чтобы заставить вас думать два раза и убедиться.
Теперь вместо этого
obs$.pipe(tap( data => console.log(data), error => console.log(error) )).subscribe( data => console.log(data), error => console.log(error) )
Теперь вам нужно сделать следующее:
source$.pipe(tap(
data => console.log(data)
)).subscribe(
{
next: data => console.log(data),
error: err => console.log(err),
}
)
Быстрее
Согласно некоторым твитам и дискуссиям, разработчики утверждают, что RXJS 7 быстрее. Тем не менее, это должно выдержать исследование времени, но я думаю, что это будет.:)
Сноска
Конечно, есть несколько других обновлений в RXJS и Shoutout команде разработчиков для выпуска этого пакета. Вы можете прочитать больше об обновлении подробно по следующим ссылкам:
Изменить резюме Средняя статья Обоснованная статья
Оригинал: “https://dev.to/vazsonyidl/rxjs-7-is-released-323a”