Конвейерный оператор

Experimental

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Экспериментальный конвейерный оператор |> (в настоящее время на этапе 1) позволяет создавать читаемые цепочки вызовов функций. В основном, конвейерный оператор предоставляет возможность вызова функции с одним аргументом, и позволяет написать:

let url = "%21" |> decodeURI;

Эквивалентный вызов в традиционном синтаксисе выглядит следующим образом:

let url = decodeURI("%21");

Синтаксис

выражение |> функция

Значение указанного выражения передаётся в функцию в качестве единственного параметра.

Примеры

Цепочки вызовов функций

Конвейерный оператор позволяет улучшить читаемость кода, в случае когда встречается цепочка из нескольких функций.

const double = (n) => n * 2;
const increment = (n) => n + 1;

// без конвейерного оператора
double(increment(double(double(5)))); // 42

// с конвейерным оператором
5 |> double |> double |> increment |> double; // 42

Спецификации

Спецификация Статус Comment
Pipeline operator draft Этап 1 Ещё не включён в спецификацию ECMAScript.

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также