更有可能是语法问题,而不是其他问题。 想象一下,存储在长度由运行时确定的“ vec”中的某些期货,您应该同时加入这些期货,该怎么办?
显然,以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[..][..] ]
那是行不通的
这里出现的问题是,是否有任何途径可以更有效地加入这些期货,还是我应该错过文件所说的东西?