0

有一个

  • 查询播放器
  • 订阅playerJoinedTable

两者都应该返回PlayerType并且都接收具有属性profileId的对象。

PlayerType 具有解析器的属性配置文件

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

当服务器被要求查询玩家时,它会返回玩家表中的字段和带有配置文件字段的配置文件对象。

但是在下面订阅时:

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

执行时,服务器只返回玩家自己的字段,而不执行配置文件的解析器。

输出: 在此处输入图像描述

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

4

1 回答 1

0

奥斯卡!

看起来您在playerJoinedTable > profile解析器中有错误。似乎您正在尝试访问collectionon db(我认为),但db未定义。

db在传递给上下文之前,确保服务器没有开始监听

于 2017-11-28T17:43:28.470 回答