在带有filter功能的“ graphql-subscriptions”中,“ variables”如何工作?

时间:2019-12-05 02:47:19

标签: node.js graphql graphql-subscriptions

我使用graphql-subscriptions库创建一个nodejs graphql应用程序来处理pubsub。下面是源代码:

import { withFilter } from 'graphql-subscriptions';

const SOMETHING_CHANGED_TOPIC = 'something_changed';

export const resolvers = {
  Subscription: {
    somethingChanged: {
      subscribe: withFilter(() => pubsub.asyncIterator(SOMETHING_CHANGED_TOPIC), (payload, variables) => {
        return payload.somethingChanged.id === variables.relevantId;
      }),
    },
  },
}

您会看到variables函数的第二个参数中有一个withFilter参数。我发现此variables与客户端子请求相同。 variables是什么意思?我如何了解variables的目的?还是可以为此variables设置不同的值?

1 个答案:

答案 0 :(得分:2)

如果订阅数据将基于变量(订阅输入)和有效负载(返回数据)条件发布给特定用户,则可以使用 withFilter()