SwiftUI Swift 5.5 新属性之 async 异步调用url
2023-09-11 14:18:30 时间
SwiftUI Swift 5.5 新属性之 async 异步调用url
异步是最受欢迎的功能之一,它终于在 swift 中。这大大简化了工作流程。
我们编写的很多代码都必须处理异步行为。从磁盘获取数据、向远程 API 发送请求或下载图像 - 所有这些操作都需要时间,即使是在超快速、低延迟的在家工作网络上也是如此。
处理这个问题的一个简单方法是等待调用完成并且我们请求的数据已经到达。这种方法的问题在于您的应用程序的 UI 在等待时会冻结。我们都使用过对于某些任务似乎完全冻结的应用程序 - 这是一种糟糕的用户体验。
一种方法是在后台线程上执行长时间运行的任务,并在结果到达后回调主应用程序。有多种方法可以实现这一点。作为 iOS 开发人员,我们熟悉委托:您调用一个方法,片刻之后您将收到委托方法之一的结果。这很有效,但生成的代码散布在各处并且很难阅读。
闭包提供了一种更优雅的方式来编写异步代码。
使用闭包和回调来处理异步代码现在很常见,许多 iOS SDK,例如 Alamofire、AWS Amplify、Firebase,甚至 Apple 自己的 SDK 都URLSession在使用它。
但是,一旦您尝试协调多个异步调用,这种代码很快就会变得难以阅读,而且——更糟糕的是——很难正确理解。如果我们能够以类似于第二个代码片段的方式编写异步代码,不是很好吗?
好消息是, Swift 添加了对 async/await 的支持,这将允许我们在不使用回调的情况下进行异步调用。
let url = URL(string: "htts://api.github.com/users/hadley/orgs")!
let (data, _) = try await URLSe
相关文章
- 键盘event.which属性
- windows2003 IIS6.0右键属性没有asp.net选项卡的解决办法
- python封装特性之隐藏属性和私有属性代码示例:双下划线_ _开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问
- jQuery easyUI--zTree属性菜单
- 授人以渔 - 如何自行查询任意 SAP UI5 控件属性的文档和技术实现细节试读版
- C# 类型和成员基础以及常量、字段、属性
- ResultMap详解(处理字段名和属性名不一致)
- 【Groovy】使用 SwingBuilder 构建 Swing 窗口 ( 创建一个 Swing 构造器 | 配置 Swing 窗口的一系列属性 | 设置 Swing 窗口显示 )
- ES mapping可以修改include_in_all,也可以修改index_options,norm,但是无法修改_all属性!
- Android JNI结构体和指针数组的使用以及调用Java类的方法和属性