You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust新手求助:如何无需硬编码用tokio::try_join!处理JoinHandle与向量元素

解决Rust动态异步任务批量等待的问题

你现在用tokio::try_join!硬编码evaluate_handles的每个元素确实不够灵活。要实现动态处理任意数量的任务,你可以用futures crate里的try_join_all函数——它和try_join!行为完全一致(只要有一个任务失败就立即返回错误),同时支持传入动态数量的Future。

具体实现代码

use futures::future::try_join_all;

// 将单个fetch_handle和evaluate_handles合并成一个迭代器
let all_tasks = std::iter::once(fetch_handle).chain(evaluate_handles);
// 并行等待所有任务完成,逻辑和try_join!完全对齐
let _ = try_join_all(all_tasks).await;

补充说明

  • 若项目还未引入futures依赖,需在Cargo.toml中添加:
    futures = "0.3"
    
  • 如果你不需要“一失败就终止”的逻辑,而是想等待所有任务完成(无论成功或失败),可以改用tokio::join_all,它会返回所有任务的Result集合。

内容的提问来源于stack exchange,提问作者Mike Altonji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:42:41