首页 > 解决方案 > 为什么我们从服务器获取数据时需要使用异步?

问题描述

我是 Flutter 的新手,我正在尝试从互联网上获取数据。我不明白为什么这个函数应该是异步的?

标签: dartflutter

解决方案


异步执行是一种防止应用程序(线程)在服务器响应到达之前被阻塞的方法,这可能是几秒钟甚至几分钟,并且对于大多数应用程序来说是不可接受的,尤其是在移动设备上。

Dart 默认运行单个线程(可以使用隔离启动其他线程)并且是事件驱动的。异步执行为来自服务器的响应到达的情况注册一个事件处理程序(根据您的示例)。

async/await是一种确保代码以正确顺序运行的简单方法 - 在特定事件发生之后。

这允许在一个执行线程等待某个事件时运行其他代码(事件处理程序)。

其他系统运行多个线程,其中等待响应的线程被暂停。Dart 运行单个线程,但通过使用事件队列的异步执行来避免阻塞线程。


推荐阅读