Dart/Flutter中如何添加等待时间 实现if else代码块间延迟执行
Dart/Flutter 代码执行间隔实现方案
Dart中实现两段代码的延迟间隔,使用Future.delayed搭配await关键字即可,注意包含这段逻辑的函数需要标记为async。
代码示例
// 包含逻辑的函数必须添加async关键字 void executeLogic() async { if(test == true) { print("Hello"); // 此处添加5秒延迟 await Future.delayed(const Duration(seconds: 5)); print("This hello after 5 seconds"); } }
注意事项
Duration类支持多种时间单位配置,除了seconds外,还可以使用milliseconds(毫秒)、microseconds(微秒)、minutes(分钟)等参数实现不同长度的延迟- 如果是在Flutter的StatefulWidget中使用该逻辑,比如延迟后更新页面状态、跳转路由、弹出提示,建议在执行后续逻辑前判断组件是否仍处于挂载状态,避免内存泄漏或运行异常:
void executeLogic() async { if(test == true) { print("Hello"); await Future.delayed(const Duration(seconds: 5)); // 仅组件挂载时执行后续逻辑 if (mounted) { print("This hello after 5 seconds"); } } }
内容的提问来源于stack exchange,提问作者Learning Code
相关产品推荐
相关产品推荐

