Apollo GraphQL:使用withFilter时修改有效负载?
我有一个使用带筛选器的Apollo GraphQL:使用withFilter时修改有效负载?,graphql,apollo,apollo-server,Graphql,Apollo,Apollo Server,我有一个使用带筛选器的的工作订阅: User_Presence_Subscription: { subscribe: withFilter( () => pubsub.asyncIterator(USER_PRESENCE_UPDATED_CHANNEL), (payload, args, context) => { if (typeof (payload) === 'undefin
的工作订阅
:
User_Presence_Subscription: {
subscribe: withFilter(
() => pubsub.asyncIterator(USER_PRESENCE_UPDATED_CHANNEL),
(payload, args, context) => {
if (typeof (payload) === 'undefined') {
return false;
}
const localUserId = (typeof(context) == 'undefined' || typeof(context.userId) == 'undefined') ? null : context.userId;
const ids_to_watch = args.ids_to_watch;
const usersWithUpdatedPresence = payload.User_Presence_Subscription;
let result = false;
console.log("User_Presence_Subscription - args == ", args, result);
return result;
}
)
}
我想在将有效负载发送到客户端之前修改它。我尝试添加一个resolve
函数:
User\u Presence\u订阅:{
解析:(有效负载、参数、上下文)=>{
调试器;pubsub.asyncIterator(用户\u状态\u更新的\u通道),
(有效负载、参数、上下文)=>{
if(有效载荷的类型)==“未定义”){
返回false;
}
const localUserId=(typeof(context)='undefined'| | typeof(context.userId)='undefined')?null:context.userId;
const ids_to_watch=args.ids_to_watch;
const usersWithUpdatedPresence=payload.User\u Presence\u订阅;
让结果=假;
log(“用户\状态\订阅-args==”,args,结果);
返回结果;
}
)
}
…但是resolve
函数中的debugger
行从未被命中
这里使用的正确语法是什么?已解决。冲突解决程序未被命中的唯一原因是,在我的测试代码中,我从
with filter
函数返回了false
。当它返回true
时,冲突解决程序按预期被命中。已解决。冲突解决程序未被命中的唯一原因是在我的测试代码中st code I从withFilter
函数返回false
。当返回true
时,冲突解决程序按预期命中
User_Presence_Subscription: {
resolve: (payload, args, context) => {
debugger; <== NEVER ACTIVATES
return {
User_Presence_Subscription: payload,
};
},
subscribe: withFilter(
() => pubsub.asyncIterator(USER_PRESENCE_UPDATED_CHANNEL),
(payload, args, context) => {
if (typeof (payload) === 'undefined') {
return false;
}
const localUserId = (typeof(context) == 'undefined' || typeof(context.userId) == 'undefined') ? null : context.userId;
const ids_to_watch = args.ids_to_watch;
const usersWithUpdatedPresence = payload.User_Presence_Subscription;
let result = false;
console.log("User_Presence_Subscription - args == ", args, result);
return result;
}
)
}