`variables` 如何在 `graphql-subscriptions` withFilter 函数中工作?

How does `variables` work in `graphql-subscriptions` withFilter function?

我使用 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;
      }),
    },
  },
}

可以看到withFilter函数的第二个参数中有一个variables参数。我发现这个 variables 与客户端子请求相同。这是variables的意思吗?我如何理解variables的目的?或者我可以为此 variables 设置不同的值吗?

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