dart:函数添加async和不添加async的区别

一,代码:

说明:

使用async关键字,你可以在函数内部使用await关键字来等待另一个异步操作的完成,而不会阻塞当前线程的执行。

  Future<String> getMyName() {
    //await Future.delayed(Duration(seconds: 2));    //函数内部不能使用await
    return Future.delayed(Duration(seconds: 2), () => '老孟');
  }

  Future<String> getMyName2() async{
    //await Future.delayed(Duration(seconds: 2));
    var name2 = await Future.delayed(Duration(seconds: 2), () => '老孟');
    print("getMyName2:"+name2.toString());
    return name2;
  }

  void myclick() async{

    //正确得到Future类型返回
    getMyName().then((String value) {
      print('name:$value');    //name:老孟
    });

    var name2 = await getMyName();
    print('name2:$name2');    //name2:老孟

    //正确得到Future类型返回
    getMyName2().then((String value) {
      print('name2b:$value');    //name:老孟
    });

    var name2c = await getMyName2();
    print('name2c:$name2c');    //name2:老孟

 

二,运行结果:

I/flutter (17391): name:老孟
I/flutter (17391): name2:老孟
I/flutter (17391): getMyName2:老孟
I/flutter (17391): name2b:老孟
I/flutter (17391): getMyName2:老孟
I/flutter (17391): name2c:老孟

 

posted @ 2026-03-08 13:01  刘宏缔的架构森林  阅读(2)  评论(0)    收藏  举报