我正在使用来自 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 变异代码中有什么错误?