背景
我正在尝试使用 Ramda 编写 2 个函数,但我遇到了问题pipe
,这意味着我不知道如何使用它。
Code
假设我有一个返回数组的函数:
var createQuery = params => [ getSQLQuery( params ), [ getMarket() ] ];
var getSQLQuery = ( { lang } ) => `My query is ${lang}`;
var getMarket = () => "en_en"
所以,当打电话时createQuery({ lang: "es" })
我会得到以下输出:[ "My query is es", ["en_en"] ]
;
现在,我们还假设我是一个讨厌的男孩,我想利用这个重要信息!
R.tap(console.log, createQuery({lang: "es"}))
一个组合(准确地说,是一根管子)将是:
R.pipe(
createQuery( {lang: "en"} ),
R.tap(console.log)
);
它返回一个函数。
Problem
现在假设我想执行上述函数:
var comp = params => R.pipe(
createQuery( params ),
R.tap(console.log)
)(params);
comp({lang: "uk"}); //Blows Up!?
为什么我的功能会崩溃f.apply is not a function
??
我究竟做错了什么?