美文网首页
flutter-异步支持

flutter-异步支持

作者: 在下陈小村 | 来源:发表于2021-05-24 21:20 被阅读0次

Future用来异步操作。
1.延时发送Future.then()

Future.delayed(new Duration(seconds: 1),(){
    return "hello world";
  }).then((value) => print(value));

2.异常捕获Future.catchError

Future.delayed(new Duration(seconds: 1),(){
    // return "hello world";
    throw AssertionError("error");
  }).then((value) => print(value))
  .catchError((e)=>print(e));

捕获异常的另一种表现方式

Future.delayed(new Duration(seconds: 1),(){
    // return "hello world";
    throw AssertionError("error");
  }).then((value) => print(value),onError: (e){print(e);});

3.Future.whenComplete异步操作执行完毕执行的操作,比如在这里处理弹窗。

Future.delayed(new Duration(seconds: 1),(){
    // return "hello world";
    throw AssertionError("error");
  }).then((value) => print(value))
  .catchError((e)=>print(e)).whenComplete(() => print("弹个弹窗"));

4.Future.wait用来等待多个异步任务,执行完毕之后,比如多个网络请求,再执行then中的代码。

Future.wait([Future.delayed(new Duration(seconds: 2),(){return "hello";}),
    Future.delayed(new Duration(seconds: 3),(){return "world";})])
      .then((value) => print(value));

async/wait;
使用async来表示异步调用函数是异步的,
wait必须写在async的包含体中

task() async {
   try{
    String id = await login("alice","******");
    String userInfo = await getUserInfo(id);
    await saveUserInfo(userInfo);
    //执行接下来的操作   
   } catch(e){
    //错误处理   
    print(e);   
   }  
}

Stream也可以用来接收异步信息,一般用来网络下载和文件读取。

Stream.fromFutures([Future.delayed(new Duration(seconds: 1),(){return "hello1";}),
    Future.delayed(new Duration(seconds: 2),(){throw AssertionError("Error");}),
  Future.delayed(new Duration(seconds: 3),(){return "hello3";})])
  .listen((event) {print(event);},onError: (e){print(e);},onDone: (){
    print("弹出提示");

相关文章

  • flutter-异步支持

    Future用来异步操作。1.延时发送Future.then() 2.异常捕获Future.catchError ...

  • flutter-异步编程

    首先看一张Flutter体系结构图: 我们只关注线程相关信息 1、Framework:我们直接接触的层级 2、en...

  • flutter-异步编程

    Dart执行(运行在UI task runner ,root isolate) 优先执行Miscrotask队列 ...

  • Flutter-现有iOS工程引入Flutter

    Flutter-现有iOS工程引入Flutter Flutter-现有iOS工程引入Flutter

  • Flutter-线程与异步

    1、线程 Flutter 主要分为三个核心模块: Framework:基于Dart语言构建的framework,包...

  • Flutter- Streams的异步编程

    部分代码的单独工作流程 异步编程是一种原则,允许您的程序的一部分在等待应用程序线程中发生的其他活动时运行。它允许您...

  • flutter-异步-事件队列

    Dart 中事件的执行顺序:Main > MicroTask > EventQueue Dart app运⾏后默认...

  • Grails Async踩坑记——Hibernate Sessi

    Grails本身提供了一个异步支持的插件grails-async,提供异步特性。最近正好手头某个项目需要异步支持,...

  • Dart - 异步支持

    Dart 代码库中有大量返回 Future 或 Stream 对象的函数,这些函数都是 异步 的,它们会在耗时操作...

  • scrapyd支持异步

    参考资料 Gerapy[!https://github.com/Gerapy/GerapyPyppeteer/bl...

网友评论

      本文标题:flutter-异步支持

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