RxJS Pipeable Operators

Использование в 5.4

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';

Observable.of(1, 2, 3)
    .filter(x => x % 2 === 0)
    .map(x => x + x)
    .subscribe(x => console.log(x));

Использование в 5.5

import { of } from 'rxjs/observable/of';
import { filter, map } from 'rxjs/operators';

of(1, 2, 3).pipe(
    filter(x => x % 2 === 0)
    map(x => x + x)
).subscribe(x => console.log(x));

Зачем использовать pipeable operators?

  • Tree-shakable. Операторы, которые являются частью прототипа Observable и не используются в коде, во время сборки не удаляются webpack'ом или другим бандлером.
  • Упрощается создание собственных операторов
  • Транспайлеры и линтеры предлагает больше подсказок

Pipeable Operators

Похожие записи

+function ($) { "use strict"; }(window.jQuery);

  • объявляется IIFE (немедленно выполняемая функция-выражение)
  • в функцию передаётся объект библиотеки jQuery, которая внутри будет доступна через переменную с именем $
  • включается «строгий режим»

Поисковый запрос с помощью RxJS

Показательная и востребованная задача. Получение набираемого запроса из поля ввода через полсекунды после того, как пользователь закончил ввод с показом лоадера.

Angular dependency injection

Определение Provider (useClass, useValue, useFactory ), Injector. Декоратор @Inject, ключ multi: true

13 ноября 2018 г. в Angular

Не ставить фокус по клику

Проблема заключалась в следующем: когда имеется интерактивный элемент с :focus стилем и вы щелкаете по этому элементу, на нём остаётся focus стиль (outline обводка). У нативной кнопки всё работает as expected, но стоит её добавить любой стиль и, как побочный эффект, меняется её поведение.