1

在优化我的 GraphQL 解析器时,我意识到使用它们的解析器解析所有字段(而不是使用带有一些预填充数据的父解析器)是以最强大的方式利用 DataLoader 的方式。像这样:

export const User = objectType({
  name: 'User',
  definition(t) {
    t.nonNull.id('id')
    t.string('email', {
      resolve(parent, _, ctx) {
        // `getUser()` is a function that fetches the DB and then returns Promise<User>
        // It's internally using Prisma, which has an internal DataLoader
        return getUser(ctx).then(user => user?.email)
      }
    })
    // more fields with similar resolvers...
  }
})

null但是,通过这样做,当用户不存在时(至少在我的知识中)返回用户变得不可能。于是问题就来了。

  1. 是否可以使 GraphQL 解析器中的整个父对象无效?
  2. 如果是这样,如何?
  3. 如果没有,添加类似exists字段的内容会是最好的解决方案吗?
4

0 回答 0