Flutter

小白学Flutter - 一个方法的回调

2023-11-23  本文已影响0人  林希品

方式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!';
}
上一篇 下一篇

猜你喜欢

热点阅读