问题标签 [conduit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
592 浏览

haskell - 管道:多个流消费者

我编写了一个程序来计算语料库中 NGrams 的频率。我已经有了一个函数,它使用一个令牌流并生成一个订单的 NGram:

目前我只能将一个流消费者连接到流源:

如何将多个流消费者连接到同一个流源?我想要这样的东西:

一个优点是并行运行每个消费者

编辑: 感谢 Petr 我想出了这个解决方案

0 投票
1 回答
360 浏览

haskell - 使用 HTTP 管道时如何干净地处理所有可能的错误?

我有一些看起来像这样的代码:

问题是还有很多其他的 HttpException 构造函数,我通常会继续尝试,不管错误到底是什么。现在如果我替换ResponseTimeout_then 我会得到一个编译错误,因为它不能推断出异常的类型。

我也不想为异常处理程序提供类型签名。

我知道这并没有太多重复,但是添加一个案例_感觉不对,因为它就像是在说:如果异常是 ResponseTimeout 则执行 x,但如果异常是其他任何事情,则执行完全相同的操作。有没有一种使用通配符的简洁方法,但仍然让编译器知道它是哪种类型?

0 投票
1 回答
292 浏览

haskell - 管道广播

几天前的一个观点,我问了这个问题。现在我需要这个函数的纯单线程版本:

重复一遍,我需要一个函数将每个接收到的值发送到每个接收器并收集它们的结果。函数的类型签名应该是这样的:

最佳斯文


PS不是sequence,我试过了:

预期结果:


PPSzipSinks给出了想要的结果,但它只适用于元组:

0 投票
1 回答
333 浏览

haskell - Getting data out of rawQuery using Conduits

I admit I do not really understand Conduits very well given my limited Haskell knowledge. So appreciate if someone can guide me on how to accomplish this task: I would like to take the output of a rawQuery action and store it in a variable that I can then use again in my Hamlet file. For example:

When I do

I see the output in the log file. However, I would like to pipe the output to an array of tuples so I can work with it in my Hamlet file. Appreciate your help!

Thanks,

0 投票
2 回答
586 浏览

haskell - 使用管道 4.0 折叠流的子集

我正在尝试了解管道 4.0,并想转换一些管道代码。假设我有一个Ints 流,我想跳过前五个,然后得到以下 5 个的总和。使用普通列表,这将是:

在管道中,这将是:

或者作为一个完整的程序:

但是,我不太确定如何使用管道执行此操作。

0 投票
1 回答
1023 浏览

windows - Windows 8 上的“InternalIOException getAddrInfo:不存在(错误 10093)”

为什么这么简单的代码不起作用?

它会导致以下错误:

TestConduit.exe:InternalIOException getAddrInfo:不存在(错误 10093)

0 投票
0 回答
75 浏览

haskell - 带导管的动态源

我有一个在并行线程中不断增长的列表,例如在内部IORef [a]MVar [a]. 我也想将它并行下沉,直到线程退出。我应该如何实现这个?它可能看起来像这样:

或者,也许有一种更好的方法,而不需要增加一个列表并直接一个接一个地沉入线程内产生的每个块?

0 投票
1 回答
295 浏览

haskell - 如何制作像 takeWhile 这样的管道,但最多只占用一定数量的字节?

我正在尝试制作一个介于takeWhile和之间的管道isolate。也就是说,它将从输入消耗并屈服于输出,直到谓词不再成立或达到字节限制。我知道类型签名将是

作为其使用示例:

我希望

然而,最简单的可能定义isolateWhile

产量

换句话说,isolate会吃掉整个,Hello留下HetakeWhile丢弃llo。这种数据丢失对我的应用程序来说是不可取的。然而,值得注意的是,第二种情况产生了预期的结果。

=$=如果我像这样交换操作数:

然后

现在我已经修复了第一个测试,但破坏了第二个!这一次,takeWhile将采取它需要的任何东西,isolate并将采取其中的一个子集;但是无所谓takeWhile没有的用途isolate都将被丢弃,这是不可取的。

最后,我尝试了:

这确实有效!无论isolate接受和takeWhile不接受,都被 消耗CL.consume并用 放回流中leftover。不幸的是,这似乎是一个可怕的组合,并且不希望(尽管并非如此)它会缓冲至limit在内存中缓冲最多字节,然后将其放回leftover. 这似乎是一种浪费。

我能想到的唯一解决方案是根据原语编写它awaityield并且它们本身就是leftover编写takeWhileisolate 。虽然这可以解决所有问题而不会浪费太多,但似乎必须有更好的方法。

我错过了什么,还是真的没有更好的方法来写这个?

0 投票
1 回答
1362 浏览

exception - 带有aeson / attoparsec的管道,一旦源没有更多数据,如何干净地退出

我正在使用aeson/attoparsecconduit/ conduit-httpconnected byconduit-attoparsec来解析来自文件 / 网络服务器的 JSON 数据。我的问题是我的管道总是抛出这个异常......

...一旦套接字关闭或我们点击 EOF。通过管道等解析和传递生成的数据结构工作得很好,但它总是以sinkParser抛出这个异常结束。我这样调用它...

...在我的管道内部,将 ByteStrings 解析为我的消息结构。

一旦没有更多数据(没有更多顶级表达式),我怎样才能让它干净地退出管道?是否有任何体面的方法来检测/区分此异常而无需查看错误字符串?

谢谢!

编辑:示例:

示例输入(input.json):

输出:

和 out.txt:

0 投票
0 回答
1360 浏览

http - 找不到命名空间 http://cxf.apache.org/transports/http 的管道发起程序

我们正在使用 apache cxf 2.6.1 来调用 Restful API。服务器和客户端都使用 cxf 库。在客户端,我们使用 cxf 生成的客户端。一切都在开发环境中工作,但我们最近在生产环境中看到了这个错误。我用谷歌搜索并没有找到这个特定命名空间的任何东西。我想知道是否有人得到这个。我已经验证了类路径具有以下 5 个 cxf 库(在 dev 和 prod 中)。任何帮助将不胜感激。

我们在类路径中拥有的 cxf jar 列表:

这是错误消息。它非常通用,我很难找到根本原因。