javascript - 免点调试

标签 javascript debugging pointfree ramda.js

所以我们使用非常好的 ramda工作中的库,这很棒,因为我们能够使用基本上无点的代码风格。这样做的问题是,当出现问题时,指向我们代码中某些东西的地方要少得多;大多数运行时错误的发生是因为误用了组合的 ramda 函数。将其与将这些函数传递给一个使用大量重定向的框架(我们在 react/redux 上)相结合,并且通常当出现问题时,它在仅限库的代码中很深,很难找出我去了哪里错了。

有没有办法在不放弃无点样式的情况下缓解这个问题?

最佳答案

一种选择是使用 R.tap ,像这样:

const f = R.pipe(
  R.tap(console.log),  // logs x
  g,
  R.tap(console.log),  // logs g(x)
  h,
  R.tap(console.log),  // logs h(g(x))
  i,
  R.tap(console.log),  // logs i(h(g(x)))
  j,
  R.tap(console.log)   // logs j(i(h(g(x))))
);

f(x);

另一种选择是使用 Sanctuary ,当函数应用于错误类型的参数时会引发信息性异常。

关于javascript - 免点调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289989/

相关文章:

javascript - 未处理的拒绝错误 : Script error for "nprogress", 需要:资源/元素/加载指示器

javascript - 使用phonegap的HTML5应用程序(服务器或客户端)

haskell - 无意义编程时 readFile 和 IO monad 之间没有合作

haskell - 在 Haskell 的无点函数中理解 `ap`

javascript - 模块参数的 Node js module.exports

linux - 如何调试用 'make' 编译的程序?

eclipse - 在 Eclipse 中调试一些 PhpUnit 测试

java - 如何在 Eclipse 调试器中显示数组长度?

javascript - 可以对无点函数进行流注释吗?

javascript - Socket.IO 在两个用户之间发送消息的最佳方式?