`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()。
我使用 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()。