js-ramda-使用R.tap和R.thunkify替代箭头函数

import * as R from 'ramda'

// R.thunkify。用来消除`() => fn`这样的操作
const fnClg = v => console.log(v) // 一个参数时,并且需要传入值v用于调用。
const fnClg2 = (id, v) => console.log(id, v) // 两参数时,不需要调用v,而是调用其他参数的情况。
const fn1 = R.tap(fnClg) // R.tap:返回一个函数,函数执行后返回入参。
const fn2 = R.thunkify(fnClg2)('12313') // R.thunkify:调用完参数后返回待执行函数, 如:fn2 => `v => fn2()`
const fn3 = R.tap(R.curry(fnClg2)('test')) // 跟R.thunkify的区别是,这里是curry,会等待传入一个参数进入才调用。
let clg = R.pipe(
  R.tap(r => fnClg(r)), // 调用结果但不改变结果,返回结果给下面的函数。这里是打印结果r
  R.tap(fn1), // 优化上面的写法
  R.tap(r => fnClg2('12313', 123)), // 不调用结果,但需要传入一个函数给tap调用。这里不调用结果r,直接让它往下流
  R.tap(fn2(123)), // 优化上面的写法
  R.tap(fn3) // 第三种写法
)
clg('123')
/* 
  123
  123
  12313 123
  12313 123
  test 123
*/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值