亲爱的开发者。几天来我无法理解如何正确使用:Futures、Streams 和 Async / Await。我在官方频道看了视频,但最后我什么也看不懂。如果有人可以向我解释这将是很酷的。因为我经常使用这些类和函数提出问题,但我不明白它们是如何工作的。感谢您的理解))
亲爱的开发者。几天来我无法理解如何正确使用:Futures、Streams 和 Async / Await。我在官方频道看了视频,但最后我什么也看不懂。如果有人可以向我解释这将是很酷的。因为我经常使用这些类和函数提出问题,但我不明白它们是如何工作的。感谢您的理解))
长时间运行的任务在移动应用程序中很常见。在 Flutter/Dart 中,这通过 Future 解决。Future 允许你做异步工作(Async/Await)来释放任何其他不应该被阻塞的流。例如:用户界面(UI)线程。重要的是:
异步/等待
异步编程是一种并行执行形式,可加快编程循环中的事件链。但是,您不能在所有情况下都使用异步编程。这仅在您寻求简单而不是效率时才有效。对于处理简单和独立的数据,异步编程是一个很好的选择。
例子:
未来
Future 是异步操作的结果,可以有两种状态:未完成或已完成。因为异步操作会抛出异常,所以必须对其进行处理。为此,我们可以使用以下方法:
例子:
程序输出:
流
Stream 是一系列异步事件。它就像一个异步可迭代(Iterable)——而不是在你请求它时获取下一个事件。Stream 告诉你当它准备好时有一个事件。流有两种类型:单一订阅流和广播流。
这种方法源于反应式编程(ReactiveX),初学者很难学。简而言之,进入数据流并在其中发生变化的所有内容在其他使用它的地方也会立即发生变化。要了解有关此主题的更多信息,我建议阅读这篇文章。
例子:
升级版:
更多细节可以在视频中看到。