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

async do while循环中是否允许使用await语法?

do {
  await future;
} while (condition);

上述写法是完全合法的,只要满足await的基础使用前提即可:

  • 整个循环定义在async修饰的函数内部,或者运行在支持顶层await的ES模块环境中

执行逻辑

这段代码的运行顺序是固定的串行逻辑:

  1. 首次直接进入循环体,等待await后的异步任务future执行完成
  2. 异步任务执行完毕后,再判断while括号内的condition条件
  3. 条件成立则再次进入循环体执行异步任务,不成立就直接退出循环

适用场景与注意事项

  • 这种写法非常适合需要串行执行异步任务的场景,比如反复请求分页接口直到拿到全部数据、轮询接口直到返回符合要求的结果这类需求,实现起来非常简洁
  • 如果你没有强制要求异步任务按顺序执行,这种依次等待的写法会比并行处理的效率低,可根据实际业务场景选择合适的实现方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:24:00