Dart 异步编程(一):初步认识
2024-09-08 11:48:24
由于 Dart 是单线程编程语言,对于进行网络请求和I/O操作,线程将发生阻塞,严重影响依赖于此任务的下一步操作。
通常,在一个阻塞任务之后还有许许多多的任务等待被执行。下一步任务需要上一步任务的结果,比如:请求一个数据,并将数据显示到界面上,此时,百分之九十的情况有NULL
异常。
下面是一个模拟阻塞任务的下一步获取该任务返回的数据时发生的异常:
User user = post('http://api.example.com/get/user/1');
print(user); // => null exception.
Future
对象用于表示异步操作的结果,可以很好地解决上诉情况。Future 对象会等待阻塞任务完成之后才执行下一步任务。
post('http://api.example.com/get/user/1').then((value) => print(value));
post
方法返回 Future 对象,Future 对象可以链式使用then
,等到阻塞任务完成之后进行下一步操作。
最新文章
- iOS加密方式及解压缩文件
- #研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案
- Liunx的各种小指令
- 给jar包进行数字签名(2014-06-28记)
- 7个惊艳的HTML5 Canvas动画效果及源码
- jQuery 元素遍历
- 第5章 Posix 消息队列
- 如何排查java.lang.NoSuchMethodError错误
- I.MX6 android 获取framebuffer信息
- codeforces 260 div2 B题
- ORACLE参数文件
- 【HDOJ】3726 Graph and Queries
- Winform控件Enable=false显示优化
- Redhat Enterprise 5.4下安装配置Oracle 11g R2详细过程
- Hive:添加、删除分区
- 学JAVA第二十天,接触异常处理,自定义异常
- 【ASP.NET Core快速入门】(十)Cookie-based认证实现
- java 11 新的Epsilon垃圾收集器
- SVN迁移到GitLab,保留提交记录
- C语言博客作业01--分支、顺序结构