中继:如何在利用nodeDefinitions的同时避免重复的数据库查询

时间:2016-08-11 22:33:34

标签: graphql relayjs graphql-js

我的问题是要求用户分页。以继电器入门套件为基础示例,

class User {}
class Widget {}

// Mock data
var viewer = new User();
viewer.id = '1';  

getUser: (id) => id === viewer.id ? viewer : null,
getViewer: () => viewer,

如果这是一个真正的数据库,viewer将是对数据库的请求。我们称之为fetchUser(id)

每次我们通过'{1}}向'用户'发出请求时,我们会调用nodeDefinitionsgetUser()的数据库发出请求。

fetchUser(id)

当我们通过调用小部件(第一个:$ count)通过一个长的无限滚动小部件对'User'示例中的片段进行分页时,例如,通过将var {nodeInterface, nodeField} = nodeDefinitions( (globalId) => { var {type, id} = fromGlobalId(globalId); if (type === 'User') { return getUser(id); 递增3,然后我们重复进行为每个分页请求$count到数据库。这通过每次为同一条数据发出请求来阻止数据分页。

我知道数据加载器,但有没有更简单的方法来缓存此请求,而不是必须进行数据库查询?

fetchUser(id)

0 个答案:

没有答案