Rust 当try#u next';我还没有任何东西

Rust 当try#u next';我还没有任何东西,rust,rust-tokio,Rust,Rust Tokio,我希望比我聪明的人能帮我解决这个问题。因此,我使用kube rs板条箱在我的网络上的一个单独的网络线程上从Kubernetes流式传输容器日志,并且每当流中的下一个条目需要一段时间时,整个线程都会被阻塞。我尝试了很多方法,甚至创建了另一个线程来运行while循环,但似乎没有任何帮助。显然,要么我在做一些愚蠢的事情(我是一个铁锈新手),要么有更好的方法来做到这一点 这是代码。它在回购协议上 pub异步fn流\u容器\u日志(&mut self){ let(名称空间、pod_名称、cont_名称)=

我希望比我聪明的人能帮我解决这个问题。因此,我使用kube rs板条箱在我的网络上的一个单独的网络线程上从Kubernetes流式传输容器日志,并且每当流中的下一个条目需要一段时间时,整个线程都会被阻塞。我尝试了很多方法,甚至创建了另一个线程来运行while循环,但似乎没有任何帮助。显然,要么我在做一些愚蠢的事情(我是一个铁锈新手),要么有更好的方法来做到这一点

这是代码。它在回购协议上

pub异步fn流\u容器\u日志(&mut self){
let(名称空间、pod_名称、cont_名称)={
让mut-app=self.app.lock().wait;
如果let Some(mut p)=app.data.pods.get_selected_item(){
(
p、 名称空间,
p、 名字,
p、 容器
.get_selected_item()
.map_或(“.to_string(),| c | c.name),
)
}否则{
(
std::env::var(“名称空间”).unwrap_或_else(| |“default.into()),
“”.to_string(),
“”.to_string(),
)
}
};
如果pod_name.is_empty(){
返回;
}
让pods:Api=Api::namespaced(self.client.clone(),&namespace);
设lp=LogParams{
容器:一些(cont_name.clone()),
跟随:是的,
上一篇:错,
时间戳:对,
尾线:一些(10),
…默认值::默认值()
};
//TODO调查这是阻塞网络线程的原因
匹配pods.log\u流(&pod\u name,&lp)。等待{
正常(mut日志)=>{
#[允许(clippy::评估顺序依赖性)]
而let(Some(line),true)=(logs.try_next().wait.unwrap_或(None){
让app=self.app.lock().wait;
app.get_current_route().active_sub_block==ActiveSubBlock::Logs
&&app.data.logs.id==cont_name
}) {
let line=String::from_utf8_lossy(&line).trim().to_String();
if!line.is_为空(){
让mut-app=self.app.lock().wait;
app.data.logs.add_记录(行);
}
}
}
错误(e)=>{
处理错误(无论如何!(e))。等待;
}
};
}

根据此处的建议进行了临时修复