方式1:(推荐)
例子1🌰 点击一个方法 一秒后回调一个string出去
void main() {
print('Start');
// 调用带有回调的方法
myDelayedMethod((result) {
print('Result: $result');
});
print('End');
}
// 定义带有回调的方法
void myDelayedMethod(void Function(String) callback) {
// 使用 Future.delayed 来模拟延迟一秒
Future.delayed(Duration(seconds: 1), () {
// 在一秒后调用回调,并传递字符串参数
callback('Hello after 1 second!');
});
}
例子2🌰 点击一个方法 倒计时10秒后返回一个string
import 'dart:async';
void main() {
print('Start');
// 调用带有倒计时的方法
myCountdownMethod((result) {
print('Result: $result');
});
print('End');
}
// 定义带有倒计时的方法
void myCountdownMethod(void Function(String) callback) {
int countdown = 10;
// 使用 Timer.periodic 创建一个定时器,每秒执行一次
Timer.periodic(Duration(seconds: 1), (Timer timer) {
// 每秒倒计时减一
countdown--;
// 如果倒计时结束,取消定时器并调用回调
if (countdown <= 0) {
timer.cancel();
callback('Countdown finished!');
}
});
}
方式 2:
import 'dart:async';
void main() {
print('Start');
myDelayedMethod().then((result) {
print('Result: $result');
});
print('End');
}
Future<String> myDelayedMethod() async {
// 使用 Future.delayed 来模拟延迟一秒
await Future.delayed(Duration(seconds: 1));
// 返回字符串
return 'Hello after 1 second!';
}
网友评论