假设一些future 存储在Vec
中,其长度由运行时确定,您应该同时加入这些future ,您应该怎么做?
显然,以tokio::join
为例,手动指定Vec
的每个长度,比如1、2、3...处理体面的案子应该是有效的.
extern crate tokio;
let v = Vec::new();
v.push(future_1);
// directly or indirectly you push many futures to the vector
v.push(future_N);
// to join these futures concurrently one possible way is
if v.len() == 0 {}
if v.len() == 1 { join!(v.pop()); }
if v.len() == 2 { join!(v.pop(), v.pop() ); }
// ...
我还注意到东京:加入!当我使用如下语法时,将列表作为文档中的参数
tokio::join!(v);
或者类似的
tokio::join![ v ] / tokio::join![ v[..] ] / tokio::join![ v[..][..] ]
它就是不起作用
接下来的问题是,有没有更有效地加入这些future 的途径,或者我应该错过一些与文件所说相反的东西?