lodash - Lodash链函数的调试
问题描述
如何在浏览器中调试 lodash 链函数。
前任:
if (_.size(_.values(_.omit(this.user, 'language')).filter(Boolean)) < 2)
如果我们要调试_.omit(this.user, 'language')
,然后使用_.values()
示例中所示的另一个函数得到最终结果,应该怎么做。
我尝试搜索但只能找到 console.log 但如果我们想直接在浏览器中调试,我们该怎么做。
解决方案
链函数和 lodash 序列通常被“调试”或“挖掘”到 via_.tap
或_.thru
:
tap:此方法调用拦截器并返回值。使用一个参数调用拦截器;(价值)。此方法的目的是“利用”方法链序列以修改中间结果。
所以是这样的:
const obj = { name: 'Ace', language: 'English', age: 3 }
const result = _(obj)
.tap(x => console.log(x))
.omit('language')
.tap(x => console.log(x))
.omit('age')
.tap(x=> console.log(x))
.value()
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
thru:这个方法和 _.tap 类似,只是它返回拦截器的结果。此方法的目的是“通过”值替换方法链序列中的中间结果。