pipe()에 붙어있는 stream관련 pipe가 아닙니다. |> 연산자에 대해 소개합니다. 읽기전에 유의바랍니다.객체.메서드1().메서드2()처럼 객체의 상태를 기반으로 동작한다.값 |> 함수1 |> 함수2 처럼 값(value) 자체를 다음 함수의 인자로 전달한다.. 가끔은 그 값에 객체를 포함할 수는 있지만, 그것은 권장하지 않는다..
ps | grep "chrome"let result = value |> fn1 |> fn2 |> fn3
$result = "Hello World"
|> strtoupper(...)
|> str_shuffle(...)
|> trim(...);
// "LWHO LDLROE"
이러한 기능이 논의되었다. 정도로 보는 것이 좋을지도 모른다. (가능성은 남아있지만...)이는 사실 논의를 보면,
qs.get("limit") |> (% ? parseInt(%, 10) : undefined)와 같은 코드를 보았을 때,F# Style (|>) vs Hack Style (|> with % placeholder)의 싸움이 발생한 것으로 보인다.
@babel/plugin-proposal-pipeline-operator 설치 후 아래 방식으로 config을 해주자.// babel.config.json 예시
{
"plugins": [
["@babel/plugin-proposal-pipeline-operator", { "proposal": "minimal" }]
]
}
function f1(x) {
return x+10;
}
function f2(x) {
return x*10;
}
function f3(x,y) {
return x*y + y
}
const y1 = f1(1)
const y2 = f2(y1);
const y3 = f3(y2,1);
// 혹은,
const yt = f3(f2(f1(1)), 1); // 뭐라는거야
console.log(y3);
function f1(x) {
return x+10;
}
function f2(x) {
return x*10;
}
function f3(x,y) {
return x*y + y
}
const y = 1 |> f1 |> f2 |> (a=>f3(a,1))
console.log(y);