1

当前有一些缓存项可以很好地访问,它们是简单的对象,但是当传递给 dataIdFromObject 的对象是一个对象的键是一个对象数组时应该发生什么。例如:

const dataIdFromObject = (obj) => {
  switch(obj.__typename) {
    case 'Post':
      return `${obj.__typename}.${obj.categoryId}.${obj.postId}
    case 'PostConnection':
      return obj.items ? obj.items[0].categoryId : defaultDataIdFromObject(obj)
    default:
      return defaultDataIdFromObject(obj)
  }
}

obj.items是 Post 对象的数组。

问题是数据似乎不时使用嵌套项数组中的第一项从其他类别缓存。这样做有什么问题吗?

如果未取消请求,是否可能存在潜在的竞争条件,这可能会导致来自另一个类别的数据存储在错误的缓存键下,因为在查看 localStorage 时,您将能够看到其他类别下的帖子,比如说类别 b 下的类别.

PostConnection.a {
  items:
    cat a item
    cat b item
    cat b item
}
4

0 回答 0