美文网首页Flutter
小白学Flutter - 一个方法的回调

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

作者: 林希品 | 来源:发表于2023-11-23 10:38 被阅读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!';
    }
    

    相关文章

      网友评论

        本文标题:小白学Flutter - 一个方法的回调

        本文链接:https://www.haomeiwen.com/subject/wtxywdtx.html