gpt4 book ai didi

node.js - GraphQL 将输入参数传递给订阅

转载 作者:行者123 更新时间:2023-12-02 00:03:15 26 4
gpt4 key购买 nike

我正在尝试将 ID 等输入参数传递给 GQL 订阅。我正在与:

const { PubSub } =require ('apollo-server');

这是 apollo subscription reference page

基本上我正在尝试使用这个简单的订阅类型定义:

 type Subscription{
subscribe_device(id: String!): device}

这是我的订阅解析器:

Subscription:{
subscribe_device:(parent, args, context, info) =>{
console.log(args)
subscribe: () => pubsub.asyncIterator('stream')
}
}

实际上没有输入参数它工作得很好但是在那种情况下它似乎与 asyncIterator 有问题

没有输入参数:

Subscription:{
subscribe_device:{
subscribe: () => pubsub.asyncIterator('stream'),
}
}

有人知道如何解决这个问题吗?如何在订阅中输入一些参数?我需要它来创建动态不同的“流”

非常感谢您的帮助

最佳答案

如果您需要根据参数描述 channel ,您只需使用args 来创建基于它的 channel 名称。例如:

Subscription:{
subscribeDevice: {
subscribe: (_parent, args, _context, _info) => {
const { someId } = args;
return pubsub.asyncIterator([`stream_${someId}`])
}
}
}

这种方法对我使用 apollo-server@2.19.0 很有效。

关于node.js - GraphQL 将输入参数传递给订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61483310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com