【发布时间】:2019-03-02 22:55:35
【问题描述】:
我有以下方法:
pub fn load_names(&self, req: &super::MagicQueryType) -> ::grpcio::Result<::grpcio::ClientSStreamReceiver<String>> {
我的目标是获得grpcio::ClientSStreamReceiver 的第一个元素;我不在乎其他名字:
let name: String = load_names(query)?.wait().nth(0)?;
在nth(0) 之前调用wait() 似乎效率低下,因为我相信wait() 会阻塞流,直到它接收到所有元素。
如何在不触发构建错误的情况下编写更高效的解决方案(即nth(0).wait())? Rust 对 futures::stream::Stream 的构建错误让我非常困惑。
Rust playground 不支持grpcio = "0.4.4",所以我无法提供链接。
【问题讨论】:
-
Playground 没有板条箱并不意味着您不应该提供 MCVE。