首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试Elixir流

调试Elixir流
EN

Stack Overflow用户
提问于 2021-05-21 01:52:57
回答 1查看 79关注 0票数 0

我是Elixir的新手,我想学习如何更好地调试Streams

在我工作的地方,在大型数据集上执行操作是很常见的。这意味着在最后的操作(通常是Enum.sum() )之前,流的使用率很高。

但不幸的是,这意味着几个调用看起来无法辨别,因为它们由几个未记录的Stream.map函数组成。(这是我们目前正在解决的问题)。我希望看到数据在流间传递以进行调试时的状态。这通常是如何实现的?

示例:

代码语言:javascript
复制
SomeModule.some_large_call_that_returns_a_stream()
|> Stream.map(some_huge_hard_to_read_thing)
|> Stream.map(some_huge_hard_to_read_thing)
|> Stream.map(some_huge_hard_to_read_thing)
|> Enum.sum()

查看结果很难进行调试,特别是在Enum.sum()没有返回值或返回值为0的情况下。

有什么建议吗?And the debugger is currently unavailable to me.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-21 18:20:49

从将IO.inspect/2连接到您的管道开始是否足够?即:

代码语言:javascript
复制
SomeModule.some_large_call_that_returns_a_stream()
|> Stream.map(some_huge_hard_to_read_thing)
|> Stream.map(some_huge_hard_to_read_thing)
|> Stream.map(&IO.inspect/1)
|> Stream.map(some_huge_hard_to_read_thing)
|> Enum.sum()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67625607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档