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

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

Добавить css link и js script динамически

const link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css';
link.integrity = 'sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO'; // необязательно
link.crossOrigin = 'anonymous'; // необязательно
document.head.appendChild(link);

const script = document.createElement('script');
script.src = 'https://code.jquery.com/jquery-3.3.1.slim.min.js';
script.integrity = 'sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo'; // необязательно
s...