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

Dart中如何实现异步API调用的延迟返回控制?

解决方案

你需要让API调用和延迟操作同时执行,而不是等延迟结束再调用API。Dart里可以用Future.wait()来实现这个逻辑,它会等待传入的所有Future完成后才继续执行,正好匹配你的需求:

// 同时启动API调用和1500ms延迟
final results = await Future.wait([
  apiCall(), // 立即发起API请求
  Future.delayed(const Duration(milliseconds: 1500)) // 同时开始计时
]);

// 取API调用的结果(results[0]是apiCall的返回值,results[1]是延迟的空结果)
final result = results[0];

逻辑说明

  • 如果apiCall()在1500ms内完成:程序会继续等待延迟结束,到1500ms整时返回结果
  • 如果apiCall()耗时超过1500ms:延迟Future先完成,程序会继续等待API调用完成,一旦API返回就立刻返回结果

你之前代码的问题

你写的Future.delayed是把apiCall()作为延迟结束后的回调,这就导致API请求要等1500ms后才开始执行,完全不符合需求。正确的做法是让两个Future并行执行,再等待它们全部完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:22:11