实例方法
task(priority:
task(priority:_:)
在此视图出现之前添加要执行的异步任务。
声明
func task(
priority: TaskPriority = .userInitiated,
_ action: @escaping () async -> Void
) -> some View
返回值
在视图出现之前异步运行指定操作的视图。
参数
priority
创建异步任务时使用的任务优先级。默认优先级为
userInitiated
action
SwiftUI 在视图出现之前作为异步任务调用的闭包。 SwiftUI 将在视图消失后的某个时间点自动取消任务,然后操作完成。
详述
使用此修饰符来执行一个生命周期与修改后的视图相匹配的异步任务。如果任务在SwiftUI 删除视图或视图更改身份之前未完成,SwiftUI 将取消任务。
在任务中使用await
关键字等待异步调用完成,或等待
实例的值。例如,您可以修改 AsyncSequence
Text
视图以启动从远程资源加载内容的任务:
let url = URL(string: "https://example.com")!
@State private var message = "Loading..."
var body: some View {
Text(message)
.task {
do {
var receivedLines = [String]()
for try await line in url.lines {
receivedLines.append(line)
message = "Received \(receivedLines.count) lines"
}
} catch {
message = "Failed to load"
}
}
}
此示例使用
方法将存储在指定lines
的内容作为异步字符串序列获取。当每个新行到达时,URL
for
- await
- in
循环的主体将行存储在字符串数组中,并更新文本视图的内容以报告最新的行数。
可用版本
iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+
相关用法
- Swift Never task(id:priority:_:)用法及代码示例
- Swift Never tag(_:)用法及代码示例
- Swift Never tabItem(_:)用法及代码示例
- Swift Never transformEffect(_:)用法及代码示例
- Swift Never touchBarCustomizationLabel(_:)用法及代码示例
- Swift Never textSelection(_:)用法及代码示例
- Swift Never touchBar(content:)用法及代码示例
- Swift Never transaction(_:)用法及代码示例
- Swift Never touchBarItemPrincipal(_:)用法及代码示例
- Swift Never toggleStyle(_:)用法及代码示例
- Swift Never touchBarItemPresence(_:)用法及代码示例
- Swift Never truncationMode(_:)用法及代码示例
- Swift Never textInputAutocapitalization(_:)用法及代码示例
- Swift Never textContentType(_:)用法及代码示例
- Swift Never toolbar(id:content:)用法及代码示例
- Swift Never touchBar(_:)用法及代码示例
- Swift Never toolbar(content:)用法及代码示例
- Swift Never tint(_:)用法及代码示例
- Swift Never pageCommand(value:in:step:)用法及代码示例
- Swift Never opacity(_:)用法及代码示例
- Swift Never colorMultiply(_:)用法及代码示例
- Swift Never accessibilityAction(action:label:)用法及代码示例
- Swift Never alert(isPresented:error:actions:message:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代码示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never task(priority:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。