GraphQL 订阅不执行嵌套解析器

GraphQL Subscriptions do not execute nested Resolvers

有一个

两者都应该 return PlayerType 并且都接收带有 属性 profileId.

的对象

PlayerType 有 属性 配置文件 解析器:

profile: {
  type: ProfileType,
  resolve: (obj, args, {db}) => {
    return db.collection('profiles').findOne({_id: ObjectID(obj.profileId)})
  }
}

当服务器被要求查询玩家时,它return来自玩家table和个人资料的两个字段具有配置文件字段的对象。

但以下订阅时:

playerJoinedTable: {
  type: PlayerType,
  resolve: payload => payload,
  subscribe: () => pubsub.asyncIterator('playerJoinedTable')

被执行,服务器return只玩家自己的字段而不执行个人资料的解析器。

输出:

知道为什么订阅不执行嵌套解析器吗?

奥斯卡!

您的 playerJoinedTable > profile 解析器似乎有错误。 似乎您正在尝试访问 db 上的 collection(我认为),但 db 未定义。

确保在将 db 传递给上下文

之前服务器没有开始侦听