【发布时间】:2021-08-16 17:15:55
【问题描述】:
在许多 SO 问题以及许多外部知名资源中,例如 tokio tutorial,我看到人们使用额外的 async 块,例如:
tokio::spawn(async move {
process(socket).await;
});
而不是只做
tokio::spawn(process(socket));
两者都解决了一些 Future 和 spawn() 预期
pub fn spawn<T>(future: T) ....
where T: Future + ....
所以我无法理解需要额外的 async {} 块。
真的有必要吗?除了作为异步代码的“视觉标记”之外,还有什么区别吗?
【问题讨论】:
-
这可能是无法回答的,因为它归结为询问这些人为什么这样做。我敢打赌人们会使用
async move {},因为它通常可以工作(例如,如果你做不止一件事,或者如果你做的一件事甚至不是异步的),而“内联”它是一个特殊情况一个等待。
标签: rust async-await