我正在用Falcor(falcor-router)进行一些实验,并想知道为什么它有时会返回'原子'值。
例如,我要求这条路:['items',{from: 0, to: 100},['name', 'value']]
此路径仅存在50个项目,因此仅填充了items.0..50
个路径。
生成的jsonGraph包含items.0..50
的正确值,但也包含items.51..100
的值,如下所示:
51: {
name: {
type: "$atom"
},
value: {
type: "$atom"
}
}
我希望jsonGraph中不会出现items.51..100
,而不是填充这些atom
值。
为什么会发生这种情况,我该怎么办才能避免呢?
答案 0 :(得分:1)
目前,不产生数据的路由被实现为空原子,因此客户端知道这些值确实是未定义的(而不是尚未缓存)。
JSONGraph合并需要处理响应可能只是所请求路径的子集的情况。如果您请求三个路径,但JSONGraph响应只有两个路径的数据,则JSONGraph合并知道还剩下一个路径,并重试请求(但仅限于丢失的路径)。重复此过程,直到我们达到我们的重试限制,或者我们已收到所有请求路径的数据。
因此,实现是让缓存知道它不应该构建缺失路径并重新请求此数据的方式。
我认为我们计划尽快摆脱实现,只传达没有数据返回的路径。
https://github.com/Netflix/falcor-router/issues/189#issuecomment-247722403