我有一段代码如下 -
(future
(
(comp
(fn [data]
(service/parse srv data))
(fn []
(service/fetch srv))
)))
基本上有两个函数fetch
和parse
我将来必须调用它们。 fetch
函数使用parse
的结果。不知怎的,上面似乎很冗长,因为我必须创建匿名函数,以便我可以comp
它们然后使用extra()来执行comped函数。
有没有更好的方法来实现上述目标?
答案 0 :(得分:2)
我认为srv
是某个url或Var中定义的其他对象?你的代码不清楚。无论如何,相当于:
(future
(let [data (service/fetch srv)]
(service/parse srv data)))
或只是
(future
(service/parse srv (service/fetch srv)))
我希望您可以重构parse
,因此它不依赖于srv
,但我没有足够的信息来确定您的问题。
答案 1 :(得分:2)
(future
(->> (service/fetch srv)
(service/parse srv)))