如何在浏览器中调试lodash链函数。
前任:
if (_.size(_.values(_.omit(this.user, 'language')).filter(Boolean)) < 2)
Run Code Online (Sandbox Code Playgroud)
如果我们想调试_.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()Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
thru:该方法类似于_.tap,只不过它返回拦截器的结果。此方法的目的是“传递”值以替换方法链序列中的中间结果。