isr*_*012 2 synchronous async-await swift swift5 swiftui
我有一个包含搜索数据的列表。为了获取数据,我想调用await func(swift 5.5),但我收到此错误:
“无法将 '() async -> ()' 类型的函数传递给需要同步函数类型的参数”
这是我的代码:
struct ContentView: View {
@ObservedObject var twitterAPI: TwitterAPI = TwitterAPI()
@State private var searchText = "TheEllenShow" // TheEllenShow
var body: some View {
NavigationView {
VStack{
if twitterAPI.twitterSearchResults?.resultDataVM != nil{
List {
ForEach((twitterAPI.twitterSearchResults?.resultDataVM)!) { item in
Text(item.text)
}
}
.refreshable {
await twitterAPI.executeQuery(userName: searchText)
}
}else{
Text("Loading")
}
Spacer()
}
.searchable(text: $searchText)
.onSubmit(of: .search) {
await twitterAPI.executeQuery(userName: searchText)
}
.navigationTitle("Twitter")
}
.task {
await twitterAPI.executeQuery(userName: searchText)
}
} }
Run Code Online (Sandbox Code Playgroud)
要从同步代码块调用异步代码,您可以创建一个Task对象:
.onSubmit(of: .search) {
Task {
await twitterAPI.executeQuery(userName: searchText)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1293 次 |
| 最近记录: |