Apollo は初めてなので、見つけた最も単純な例を取り上げ、少し異なる方法で作業することにしました。私のコードはここにあります。
私が抱えている問題は、 Mutation を呼び出したときに Subscription が呼び出されないように見えることですcreateTask()
。Mutation と Subscription は 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
}
}
しかし、何も起こりません。私は何が欠けていますか?