dart - 为什么我们从服务器获取数据时需要使用异步?
问题描述
我是 Flutter 的新手,我正在尝试从互联网上获取数据。我不明白为什么这个函数应该是异步的?
解决方案
异步执行是一种防止应用程序(线程)在服务器响应到达之前被阻塞的方法,这可能是几秒钟甚至几分钟,并且对于大多数应用程序来说是不可接受的,尤其是在移动设备上。
Dart 默认运行单个线程(可以使用隔离启动其他线程)并且是事件驱动的。异步执行为来自服务器的响应到达的情况注册一个事件处理程序(根据您的示例)。
async
/await
是一种确保代码以正确顺序运行的简单方法 - 在特定事件发生之后。
这允许在一个执行线程等待某个事件时运行其他代码(事件处理程序)。
其他系统运行多个线程,其中等待响应的线程被暂停。Dart 运行单个线程,但通过使用事件队列的异步执行来避免阻塞线程。
推荐阅读
- mustache.php - Mustache Php:部分构造函数不起作用
- github - github分配是什么意思
- html - 如果输入值为空,则添加 2 个不带 NaN 的输入值。AngularJS
- powershell - PowerShell 中的 CMD 命令。引号?
- ethereum - 以太坊 - 高gas成本
- ruby-on-rails - Changing Value Formatting in Rails Admin's Fields
- javascript - 提交后如何在多选中保留选定的值
- android - collapsibleToolbar 中的视图未显示
- javascript - gmap3 onclick 显示信息窗口
- android - How android Always-on VPN internally works?