【发布时间】:2015-08-03 22:44:37
【问题描述】:
例如,我有这样的代码(coffeescript):
sortedLatLng = _(w)
.sortBy (x) -> x.time
.map (x) -> [x.longitude,x.latitude]
.uniq((x)-> x[0].toFixed(3) + "," + x[1].toFixed(3)) # keep three decimal to merge nearby points
console.log(sortedLatLng.value())
myFunction1(sortedLatLng.value())
myFunction2(sortedLatLng.value())
console.log(sortedLatLng.reverse().value())
这可能会在以后被其他 lodash 方法链接。同时,它的值可能需要被提取。我只是想知道它是否会缓存结果。我没有在它的文档中找到它是如何实现的..
是否会计算一次或两次:
myFunction1(sortedLatLng.value())
myFunction2(sortedLatLng.value())
有人对此有想法吗?
【问题讨论】:
-
您可以通过严格比较对
.value()的两次调用来轻松解决这个问题。 -
我在使用
lodash库时遇到了 3 次问题。我得到了意想不到的结果,我也想知道lodash是否正在做一些我没有预料到的缓存。对我来说,我的测试中的所有结果似乎都表明lodash生成的对象以某种方式持续/缓存,这对我正在尝试做的事情来说并不方便。
标签: javascript coffeescript underscore.js lazy-evaluation lodash