rust - 等待 mpsc channel 有消息但未收到任何消息

标签 rust channel rust-tokio

在我看来,这个问题应该很容易解决,但经过一番搜索后我仍然无法做到这一点。我有一个 tokio::sync::mpsc::Receiver (让我们称之为接收器)。我想等待接收者收到消息,但不拉出任何消息。看过docs ,除了 receiver.recv() 之外,我找不到任何其他东西来完成工作,但这会拉出第一条消息。我似乎找不到任何类似的东西 receiver.read()receiver.peek() 或类似的东西。我错过了什么吗?有解决方法可以完成我需要做的事情吗?

最佳答案

我相信你是对的。您可以考虑使用第二个 channel 。

如果您对值不感兴趣(例如可读),您可以同时发送到两个 channel ,一个传递实际数据,一个仅传递单位( ()) 只是为了表示有事情发生。

如果您确实想查看该值(例如使用peek),另一种方法可能是照常将数据发送到第一个 channel ,并在收到数据后直接将数据发送到第二个 channel 在第一个。

关于rust - 等待 mpsc channel 有消息但未收到任何消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73405054/

相关文章:

node.js - Socket.io:命名空间、 channel 和合作

macros - 如何禁用未使用的宏警告?

rust - 如何从测试模块调用不在模块内的函数?

go - 如何循环创建 channel ?

go - golang 中的事件驱动模式

async-await - 为什么 `Box<dyn Sink>` 在使用 Tokio 和实验性异步/等待支持时不实现 `Sink` 特征?

rust - 如何停止阅读 tokio::io::lines 流?

rust - 如何一次执行多个异步函数并得到结果?

rust - 通用生命周期参数中的 'a: ' a 是什么意思?

rust - 元组struct构造函数提示私有(private)字段