想象一些futures存储在一个Vec
长度由runtime确定的a中,你应该同时加入这些futures,你应该怎么做?
显然,通过文档中的示例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! 当我使用类似的语法时,将列表作为文档中的参数
tokio::join!(v);
或类似的东西
tokio::join![ v ] / tokio::join![ v[..] ] / tokio::join![ v[..][..] ]
它只是不起作用
问题来了,是否有任何途径可以更有效地加入这些期货,或者我是否应该错过文件所说的内容?