Rust 如何理解FusedFuture
最近,我正在阅读repo中的源代码。有些rs文件中充满了我不熟悉的难以理解的异步语法。特别是关于Rust 如何理解FusedFuture,rust,async-await,future,Rust,Async Await,Future,最近,我正在阅读repo中的源代码。有些rs文件中充满了我不熟悉的难以理解的异步语法。特别是关于FusedFuture。示例文件: 根据,我的理解是,我们可以将未来转换为融合未来,然后反复多次轮询它。除此之外,我在fusefuture和下面的示例中找到了一个名为的函数 创建一个已终止的新保险丝包装未来。 这在与循环和选择组合时非常有用!宏,它绕过终止的期货 let(发送方,mut流)=mpsc::unbounded(); //向流中发送一些消息 sender.unbounded_send((
FusedFuture
。示例文件:
根据,我的理解是,我们可以将未来
转换为融合未来
,然后反复多次轮询它。除此之外,我在fusefuture
和下面的示例中找到了一个名为的函数
创建一个已终止的新保险丝包装未来。
这在与循环和选择组合时非常有用!宏,它绕过终止的期货
let(发送方,mut流)=mpsc::unbounded();
//向流中发送一些消息
sender.unbounded_send(()).unwrap();
sender.unbounded_send(()).unwrap();
投递(发送方);
//使用'Fuse::terminated()`创建已终止的未来
//稍后可能会实例化。
//熊:我们必须在这里终止()才能使用select!?
让foo_printer=Fuse::terminated();
别动!(福佑打印机);
环路{
选择{
_=foo_printer=>{},
()=流。选择“下一步”\u some()=>{
if!foo_printer.is_terminated(){
println!(“Foo已经被打印了!”);
}否则{
//熊:这里我们重置了foo_打印机的指针值?
foo_printer.set(异步{
//执行其他一些异步操作
println!(“从'foo_printer'future'打印foo”);
}.fuse());
}
},
complete=>break,/`foo_printer`终止,流结束
}
}
我无法理解何时使用此功能以及如何将其与select!结合使用!。有人能帮我更容易地理解它吗?或者有更好的文档或例子说明这种用法吗
我发现的一些帖子可能很有用: