在我看来,这个问题应该很容易解决,但经过一番搜索后我仍然无法做到这一点。我有一个 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/