【发布时间】:2019-03-19 13:20:36
【问题描述】:
我是 Flutter 的新手,我正在尝试从互联网上获取数据。我不明白为什么这个函数应该是异步的?
【问题讨论】:
-
您好 Mydev,您自己已经完成了哪些研究?另外,你对如何学习 Flutter 有什么计划?你要在这里问每一个问题吗?
-
我搜索了但解释不清楚
我是 Flutter 的新手,我正在尝试从互联网上获取数据。我不明白为什么这个函数应该是异步的?
【问题讨论】:
异步执行是一种防止应用(线程)在服务器响应到达之前被阻塞的方法,这可能是几秒钟甚至几分钟,并且对于大多数应用来说是不可接受的,尤其是在移动设备上。
Dart 默认运行单个线程(可以使用隔离启动其他线程)并且是事件驱动的。异步执行为来自服务器的响应到达的情况注册一个事件处理程序(根据您的示例)。
async/await 是一种确保代码以正确顺序运行的简单方法 - 在特定事件发生后。
这允许在一个执行线程等待某个事件时运行其他代码(事件处理程序)。
其他系统运行多个线程,其中等待响应的线程被暂停。 Dart 运行单个线程,但通过使用事件队列的异步执行来避免阻塞线程。
【讨论】: