当前位置: 首页 > 知识库问答 >
问题:

阿波罗:订阅与查询解决方案之间的区别?

淳于玺
2023-03-14

解析器工作正常:

const resolvers = {
    Query: {
        instant_message(_, args) {
            var ret = connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues));
            return ret;
        }
    },
    Subscription: {
    //[.....]
        },
    }

};

订阅解析器和查询解析器使用完全相同的代码有意义吗?即:

const resolvers = {
    Query: {
        instant_message(_, args) {
            var ret = connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues));
            return ret;
        }
    },
    Subscription: {
        instant_message(_, args) {
            var ret = connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues));
            return ret;
        }
    }

};

如果没有,需要什么区别?提前感谢大家提供的任何信息。

共有1个答案

夹谷烨赫
2023-03-14

是的,如果您希望在订阅结果中接收与在查询结果中接收相同的数据,则使用相同的逻辑是有意义的。在这种情况下,共享实际实现可能是有意义的:

// Used in both query and subscription field
function instant_message(root, args) {
  return connectors.IM.findAll({ where: args }).then((res) => res.map((item) => item.dataValues));
}

const resolvers = {
    Query: {
        instant_message,
    },
    Subscription: {
        instant_message,
    },
};

查询和订阅之间最大的区别在于订阅可能会从发布子消息接收额外的信息。例如,在GitHunt示例中,我们添加了一个commentAddedsubscription解析器,它使用发布子负载中的数据,并且根本不会命中数据库:https://github.com/apollostack/GitHunt-API/blob/cc67a4506c31310b4ba8d811dda11d258c7d60d6/api/schema.js#L166-L171

 类似资料:
  • Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 一、背景介绍 服务端基于 Spring Boot 和 Spring Cloud 开发,打包后可以直接运行,不需要额外安装 Tomcat 等应用容器。 Java 客户端不依赖任何框架,能

  • 我在AWS Lambda上写一个图形服务器组件(不使用图形服务器)。在客户端,我使用阿波罗客户端。我设置的λ函数的响应 在使用ApolloClient的客户端上,我得到以下错误 对起飞前请求的响应没有通过权限改造检查:请求的资源上没有“访问控制允许起源”标头。因此,不允许访问起源http://localhost:8080。 然而,当我使用axios之类的东西执行相同的请求时,它就可以正常工作了。此

  • 问题内容: 关于Mysql中的递归SELECT查询有很多问题,但是大多数答案是“ Mysql中没有递归SELECT查询的解决方案”。 其实有一定的解决方案,我想清楚地知道,所以这个问题是可以在(how-to-do-the-cursive-select-query-in- mysql )中找到的先前问题的以下内容 假设您有此表: &您想在col1中找到所有连接到值“ 1”的链接,即您要打印出: 然后

  • 类似的问题是存在的,但没有一个答案受到关注.. 这里说“解决这个问题的一个方法是JDBC驱动程序由通用类加载器而不是应用程序类加载器加载,你可以通过将驱动程序的jar文件转移到tomcat lib中,而不是捆绑在web应用程序的war文件中 不明白通过通用类加载器加载意味着什么,它与应用程序类加载器有什么不同。

  • 简介 阿波罗 STM32F429 是正点原子推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 180Mhz,该开发板具有丰富的板载资源,可以充分发挥 STM32F429 的芯片性能。 开发板外观如下图所示: 该开发板常用 板载资源 如下: MCU:STM32F429IGT6,主频 180MHz,1024KB FLASH ,256KB RAM 外部 RAM:W9825G6KH(S

  • 我在图形QL中遇到查询问题 这是我的问题 从"@apollo/react-hooks"导入{useQuery}; 我得到的错误