我知道这个问题被问了很多,但即使看了其他回复,我还是不知道该怎么做才能解决我的问题。
我正在使用 mastodon-async crate 来处理来自 mastodon 用户时间线的事件。对于特定事件,我想将一部分发送到 mqtt 主题。
我正在关注这个example
这就是我的代码现在的样子:
pub async fn mastodon_run() -> Result<()> {
...
let stream = mastodon.stream_user().await?;
...
let (client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
stream.try_for_each(|event| async move {
match event {
Event::Update(status) => {
match get_media_url(status) {
Ok(url) => {
client.publish(consts::MASTODON_TOPIC, QoS::AtLeastOnce, false, url);
}
_ => (),
};
//}
}
_ => (),
}
Ok(())
}).await?;
Ok(())
}
mastodon-async crate 使用来自 future-utils 的 try_stream,我尝试使用 try_for_each 以外的东西,比如我看到的折叠方法可以解决我的问题,但我没有找到如何让它工作。