gpt4 book ai didi

swift - 为什么我要使用 CachePolicy returnCacheDataAndFetch 进行 AWS AppSync 查询?

转载 作者:行者123 更新时间:2023-11-30 10:42:01 24 4
gpt4 key购买 nike

我已开始在 iOS、SwiftUI 原型(prototype)上使用 AWS Amplify 工具包。该指南针对 runQuery 提供了以下内容:

func runQuery(){
appSyncClient?.fetch(query: ListTodosQuery(), cachePolicy: .returnCacheDataAndFetch) {(result, error) in
if error != nil {
print(error?.localizedDescription ?? "")
return
}
result?.data?.listTodos?.items!.forEach { print(($0?.name)! + " " + ($0?.description)!) }
}
}

当我调用它时,我在输出中得到重复的项目 - 缓存和获取。

returnCacheDataAndFetch 策略的目的是什么?该政策在实践中如何运用?

注意:我做了一些更改,没有使用 Todos,而只是使用 aws cli 生成器中的通用 MyType。


func runMutation(){
let mutationInput = CreateMyTypeInput(title: "Use AppSync", content:"Realtime and Offline")
appSyncClient?.perform(mutation: CreateMyTypeMutation(input: mutationInput)) { (result, error) in
if let error = error as? AWSAppSyncClientError {
print("Error occurred: \(error.localizedDescription )")
}
if let resultError = result?.errors {
print("Error saving the item on server: \(resultError)")
return
}
}
}

func runQuery(){
appSyncClient?.fetch(query: ListMyTypesQuery(), cachePolicy: .returnCacheDataAndFetch) {(result, error) in
if error != nil {
print(error?.localizedDescription ?? "")
return
}
result?.data?.listMyTypes?.items!.forEach { print(($0?.id)! + " " + ($0?.title)! + " " + ($0?.content)!) }
}
}

最佳答案

returnCacheDataAndFetch 用于以下情况:如果您需要通过提供来自缓存的数据来改善应用的 UI 响应时间和体验,其中网络延迟 Not Acceptable ,但过时的数据可以接受。

关于swift - 为什么我要使用 CachePolicy returnCacheDataAndFetch 进行 AWS AppSync 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56587735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com