允许订阅返回实体的初始数据

时间:2019-09-27 16:57:50

标签: graphql apollo-server graphql-subscriptions

我需要订阅以返回所请求类型的初始状态。

我的应用程序中有任务系统,任务可能具有多个状态:CREATEDQUEUEDRUNNINGCOMPLETEDCANCELLED,{{ 1}}等。 创建任务时,它具有CANCELLING状态,然后根据其类型经历多个状态,直到为CREATED

有一个订阅COMPLETED,它按照说的做。 这是一个订阅解析器:

taskUpdated(id: ID!): Task

如何在迭代器中设置初始任务状态?有人建议围绕迭代器创建一个包装器,以完成工作,但是我没有从哪里开始的想法,这似乎是一个过大的选择。是否有针对此问题的简单解决方案?

PS。由于前端的限制,在我的情况下,请不要进行 taskUpdated: { subscribe: async (...args) => { try { // get initial task state const initialTaskData = await resolveTask(args[1].input); const cb = withFilter( (_, { input }) => { const iterator = tasksPubsub.asyncIterator(TASK_UPDATED); // Set initial task state in the iterator? return iterator; }, (payload, variables) => { return payload.id === variables.input.id; }, ); return cb.apply(null, args); } catch (e) { // handle error debugger; } }, }, 的读取,然后再进行query的更新。

0 个答案:

没有答案