【发布时间】:2017-05-14 23:42:01
【问题描述】:
这是我第一次尝试使用 Ramda 进行函数式编程。我正在尝试通过组合多个函数来构建一个 api 端点字符串。
这行得通:
const endpoint = str => str && str.toUpperCase() || 'default'
const protocol = str => `https://${str}`
let finalEndpoint = R.compose(protocol, endpoint)
var result = finalEndpoint('api.content.io')
结果现在是 https://API.CONTENT.IO 符合预期
但现在我想为这个管道添加更多功能:
const params = val => `?sort=desc&part=true`
const query = val => `query={ some: value, another: value}`
但是当我尝试像这样将所有内容组合在一起时:
let finalEndpoint = R.compose(protocol, endpoint, params, query)
var result = finalEndpoint('api.content.io')
我只是得到https://?SORT=DESC&PART=TRUE 而我想要的
https://API.CONTENT.IO??sort=desc&part=true&query={ some: value, another: value}
我使用链接和组合的什么组合来获得上述结果?
【问题讨论】:
标签: functional-programming composition ramda.js