0

我正在使用来自 GitHunt-API 和 GitHunt-React 的示例代码来实现新的 Apollo pubsub 代码。这是我在处理 pubsub之前的解析器突变代码。这有效:

Mutation: {
    createIM: (__, args) => { return connectors.IM.create(args); },
},

另外,作为参考,这是我当前的解析器查询。此代码有效:

Query: {
    instant_message(_, args) {
        var ret = connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues));
        return ret;
    }
},

这是我目前为这个突变实现 pubsub的草案:

Mutation: {
    createIM(root, args, context) {
        return Promise.resolve()
            .then(() => (
                connectors.IM.create(args)
            ))
            .then(([args]) =>
                connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues))
            )
            .then(comment => {
                // publish subscription notification
                pubsub.publish('IMAdded', comment);
                return comment;
            });
    },

},

http://localhost:3010/graphiql中,这会引发错误:

“解构不可迭代实例的无效尝试”

作为参考,这是我给 graphiql 的查询代码:

询问:

mutation($fromID: String!, $toID: String!, $msgText: String!){
  createIM(fromID: $fromID, toID: $toID, msgText: $msgText){
    fromID
    toID
    msgText
  }
}

查询变量:

{
  "fromID": "1",
  "toID": "2",
  "msgText": "Test from GraphIQL"
}

我的 pubsub 变异代码中有什么错误?

4

0 回答 0