Конвеєрний оператор

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Експериментальний конвеєрний оператор |> (наразі на стадії 1) передає значення виразу у функцію. Це дозволяє створювати ланцюги функціональних викликів, які легко читаються. Результатом є синтаксичний цукор, у якому виклик функції з єдиним аргументом можна записати наступним чином:

let url = "%21" |> decodeURI;

Аналогічний виклик у традиційному синтаксисі виглядає так:

let url = decodeURI("%21");

Синтаксис

вираз |> функція

Значення вказаного виразу передається у функцію як її єдиний параметр.

Параметри

expression

    Будь-який дозволений вираз.

function

    Будь-яка функція.

Приклади

Ланцюги функціональних викликів

Конвеєрний оператор може покращити читабельність при створенні ланцюга з декількох функцій.

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

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

// з конвеєрним оператором
5 |> double |> double |> increment |> double; // 42

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

Специфікація Статус Коментар
Pipeline operator draft Stage 1 Поки що не є частиною специфікації ECMAScript.

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Pipeline operator (|>)
Experimental
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

No support  
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.

Див. також