Apollo 的新手,所以我决定采用我发现的最简单的例子,并尝试以稍微不同的方式来工作。我的代码可以在这里找到。
我遇到的问题是,当我调用 Mutation 时,似乎没有调用 Subscription createTask()
。突变和订阅在 schema.graphql 中定义为:
type Mutation {
createTask(
text: String!
): Task
}
type Subscription {
taskCreated: Task
}
在 resolvers.js 中为:
Mutation: {
createTask(_, { text }) {
const task = { id: nextTaskId(), text, isComplete: false };
tasks.push(task);
pubsub.publish('taskCreated', task);
return task;
},
},
Subscription: {
taskCreated(task) {
console.log(`Subscript called for new task ID ${task.id}`);
return task;
},
},
我期望发生的是,每次在客户端运行以下命令时,我都会在服务器中获得一个 console.log:
mutation Mutation($text: String!) {
createTask(text:$text) {
id
text
isComplete
}
}
但什么也没有发生。我错过了什么?