在应用程序初始化期间补充商店的最佳方法是什么,特别是商店之间的引用?
例如,假设我有 2 个 api 调用:
/todos -> return array of todos
[{id: 1, person_id: 2}]
/persons -> return array of Persons
[{id: 2, name: 'John'}, {id: 3, name: 'Sam'}]
Todo 对象看起来像这样
class Todo {
...
@observable person;
...
}
一些 Todos 会有一个 Person 的引用,但不是全部,也不是所有的 Persons 都会被引用,所以它不像只是废弃 Persons api 调用并使用 Todos api 返回 Person 引用那么简单称呼。
但是,我们不能确定是否会首先返回 Persons api 调用,因此我们不能只假设在 todos 响应到达时链接 Todo / Person 引用(希望并行运行调用)...
是否只是客户端代码中的额外逻辑问题,以确保我们在数据进入时设置所有引用?或者有没有人从那里的经验中找到了一些更好的做法。
编辑
我想得越多,我认为最可预测的逻辑是始终获取或创建引用对象。
所以在上面的例子中,如果 Todos 响应首先出现,我们将查找 ID 为 2 的 Person 对象,如果它存在,则创建它并引用该对象。然后,当人员响应进来时,它会做同样的事情......寻找 id 为 2 的人员,如果存在,则使用新数据更新它,如果不存在,则创建它。
有人有更好的想法吗?