首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何等待多个graphql突变完成后再调用另一个函数

在GraphQL中,可以使用Promise.all方法来等待多个GraphQL突变(Mutation)完成后再调用另一个函数。

首先,确保你的GraphQL客户端支持Promise。然后,将所有的GraphQL突变请求封装在一个数组中,并使用Promise.all方法来等待它们全部完成。一旦所有的突变请求都完成了,你可以在then回调函数中调用另一个函数。

以下是一个示例代码:

代码语言:txt
复制
// 导入所需的库和模块
const { ApolloClient, gql } = require('apollo-boost');
const fetch = require('node-fetch');

// 创建GraphQL客户端
const client = new ApolloClient({
  uri: 'https://your-graphql-endpoint', // 替换为你的GraphQL端点
  fetch: fetch,
});

// 定义GraphQL突变请求
const mutation1 = gql`
  mutation {
    // 突变1的请求内容
  }
`;

const mutation2 = gql`
  mutation {
    // 突变2的请求内容
  }
`;

// 封装所有的GraphQL突变请求
const mutations = [mutation1, mutation2];

// 使用Promise.all等待所有突变请求完成
Promise.all(mutations.map(mutation => client.mutate({ mutation })))
  .then(results => {
    // 所有突变请求完成后的处理逻辑
    // 调用另一个函数
    anotherFunction();
  })
  .catch(error => {
    // 错误处理逻辑
    console.error('突变请求失败:', error);
  });

// 定义另一个函数
function anotherFunction() {
  // 在这里执行你想要的操作
}

在上述示例中,我们使用了Apollo Client作为GraphQL客户端,并使用node-fetch库来进行网络请求。你需要根据自己的实际情况进行相应的调整。

请注意,这只是一个示例代码,你需要根据你的具体需求进行适当的修改和调整。同时,根据你使用的云计算平台和工具,可能会有不同的方式来处理多个GraphQL突变的等待和调用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 超越 REST

    1Graphile 在早期的 GraphQL 探索过程中,Netflix 的工程师意识到 Graphile 库可以将 PostgreSQL 数据库对象(表、视图和函数)作为 GraphQL API 来呈现...通过允许 GraphQL 客户端“所用权限”(“full access”)自动生成的 GraphQL 查询和 Graphile 生成的突变(在所有表和视图上公开的 CRUD 操作)来提高灵活性;然后在开发过程的后期...聚合函数 或 JSON 函数 时,Graphile 在如何描述嵌套类型方面存在局限性。...关于安全性(如何将其与我们的 IAM 基础设施集成,以及如何在数据库中实施行级访问控制?)和性能(如何限制查询以避免一次选择所有行来对数据库进行 DDoS 攻击?)...向 Graphile 生成的模式中添加自定义查询和突变(即公开 UI 所需的 gRPC 服务调用)是我们目前在 Docker 镜像中不支持的。

    3K20

    React Query 指南,目前火热的状态管理库!

    查询函数是用于从源(rest、GraphQL 等等)检索数据的方法。它很简单,一个返回某种数据的函数,可以是简单函数或者大多数情况下是一个 promise。...这个 hook 的结果有三个重要的属性: data:此属性包含查询函数的结果。请注意数据也可能为 undefined;这是因为在第一次调用时,当请求处于等待状态时,data 尚未呈现。...我很快会回到你呈现 React Query 的另一个功能。希望你喜欢这份内容。 突变 伙计们,是时候谈论 React Query 中的第二个核心概念了,即突变。 这是什么?...当你处理突变时,另一个重要的概念是 QueryClient。...这些 hooks 可用于了解应用程序中是否存在获取请求或突变请求正在进行。 如果需要创建一个全局的加载器,在存在一个或多个请求进行时出现,它们就会很有用。 但是你如何使用它们呢?

    3.8K42

    使用 GraphQL 和 Ballerina 操作多个数据源

    在下一节中,我们将探讨这些特性如何帮助你开发 GraphQL 应用程序。 一个书店示例 GraphQL 服务器的数据源可以是任何东西,如数据库、另一个 API 或提供数据的服务等。...这个示例演示了如何使用 Ballerina 实现 GraphQL 服务器,将 MySQL 数据库中的数据以及通过另一个 API 调用获取的数据公开出来。...allBooks 和 bookByName 是通过 GraphQL 查询获取书籍数据的资源函数,因此,它们返回“Book”数组。要将新书添加到数据库中,可以调用“addBook”远程方法。...与 DB 交互和 API 调用相关的 getBooks、addBookData 和 getBookReviews 函数的更多细节请参阅下一小节。...现在,在项目中添加另一个名为 bookdatastore.bal 的文件,用于 DB 交互和 API 调用相关的实现。

    2.4K20

    The Graph入门教程:如何索引合约事件

    模式(schema.graphql) - 定义数据 Mapping 映射(mapping.ts) - 定义事件到数据的转换 后面我们将逐一介绍他们的作用及如何来编写。...监听哪些事件 其他要监听的内容,例如函数调用或块 被调用的映射函数(mapping.ts) 在这里可以找到如何定义 subgraph.yaml 的详细文档[5]。...定义映射(mapping.ts) TheGraph 中的映射文件定义了如何将传入事件转换为实体的函数。它用 TypeScript 的子集AssemblyScript[7]编写。...如何编写映射函数,还可以参考文档:https://thegraph.com/docs/define-a-subgraph#writing-mappings[9]。...subgraph索引 当索引完成后,通过 Graph Explorer 中的 GraphQL playground 进行交互查询: ? GraphQL查询 4.

    2.6K30

    何为GraphQL

    在此篇教程中你将学到: GraphQL的原理 它如何与REST进行比较 如何设计数据模式 如何配置一个GraphQL服务器 如何实现查询和变动 和一些额外的高级主题 ? GraphQL的亮点在哪里?...当无法获取足够信息时,如果你拿到100个id,你将需要去执行100个独立的API调用去获取每个队员的信息。 当获取过多的信息时,你浪费了许多后台的处理时间和用来准备和传输很多不需要的数据的网络带宽。...GraphQL使用一种由类型和属性组成的类型系统给领域建模。每一个属性都有一个类型。属性类型可以是由GraphQL提供的基础类型的一种,像ID,字符串,布尔函数或用户自定义类型。...rootValue对象可以包含多个根。 这里只有allPlayers查询。...GraphQL不会窥探你的代码。 查询和突变都可以接受参数并返回数据。 它更像是语法糖,让你的模式更具人性化。 ? 高级主题 ? ? 订阅 订阅是GraphQL另一个杀手级的功能。

    3.5K60

    图数据库由浅入深

    页面上的操作比较简单,本文主要介绍如何在后端操作 Dgraph。...2.5.1 upsert 另外一种比较好用的突变方式是 upsert upsert block 包含了一个 query block 和多个 mutation blocks,query block 中定义的变量可以通过...2):如果变量中存储了多个 uid,那么 uid()函数会将所有 uid 返回,并对所有 uid 执行操作。...要设置一个 lambda webhook,需要在 GraphQL schema 中使用 @lambdaOnMutate来定义,并定义要监听的突变时间(添加、更新、删除),但是只能监听根节点的突变。...1、数据大屏可视化 2、股权关系 3、大数据分析 有了数据,通过构造关系将大量数据连接起来,结合人工智能等手段更有利于分析和发掘数据的价值。

    29610

    用ServBay快速构建下一代GraphQL应用

    在本指南中,我们将深入探讨如何利用ServBay一站式环境和Docker,构建可扩展的GraphQL微服务。...我们将从微服务架构和GraphQL的基础知识入手,逐步深入到如何利用现代工具和技术构建、容器化并部署我们的微服务。...高效的类型系统: GraphQL 拥有强大的类型系统,可以在 API 中定义数据的结构和关系。高效的数据加载功能: GraphQL 使客户端能够在单个请求中检索多个资源。...如何构建GraphQL微服务在构建GraphQL微服务时,我们将遵循以下步骤:第1步:使用ServBay设置环境不同于传统的手动安装Node.js,ServBay提供了预配置的环境,包括各个版本的Node.js...lastName: String}第6步:为GraphQL API创建解析器解析器是一个函数,它负责为每个从客户端发来的GraphQL查询提供响应。

    17900

    干货 | 万字长文全面解析GraphQL,携程微服务背景下的前后端数据交互方案

    它有很多调用方,各种不同的调用场景,甚至多个不同版本的接口并存,同时提供数据服务。 所有这些复杂性,都会反映到接口参数上。 接口调用的场景越多,它对接口参数结构的表达能力,要求越高。...可以构建一个完整的 GraphQL 服务。 但它们只是类型定义和函数定义,如果没有调用函数,就不会产生真正的数据交互。 前端传递的 query 查询语句,正是触发 Resolver 调用的源头。 ?...4.5 GraphQL 不一定返回 JSON 数据格式 这是另一个有趣的事实。最初我们演示了,如何基于 JSON 数据结果,反推出 GraphQL 查询语法的设计。...在 Query 下的每个字段,都可能对应 1 到多个内部服务的 API 的调用和处理。只用普通函数构成的 resolverMap,不足以充分表达其中的逻辑复杂度。...因此,采用比普通函数具有更好的表达能力的中间件,组合出一个个 Resolver,整合到一个 ResolverMap 里。可以更好的解决之前解决不了,或者很难的问题。

    3.7K21

    可汗学院为什么选择Go

    当一个函数在程序中调用另一个函数时,这些调用非常可靠且非常快。这是很大的基本优点。将逻辑分解为服务后,您将在代码的各个部分之间放慢速度,变得更脆弱。您还必须考虑通信将如何发生。...进行直接HTTP或gRPC调用?通过某些网关发送?...这些界限为思考如何将代码分解为服务提供了一个起点。克雷格·西尔弗斯坦(Craig Silverstein)和本·卡夫(Ben Kraft)致力于找出最初的服务集,以及我们将如何适应它们之间的界限。...GraphQL在2009年不存在,两年前,我们决定将所有HTTP GET API迁移到GraphQL,后来决定也采用GraphQL突变。...我们将尽可能地将逻辑从Python直接移植到Go,只需确保完成后代码看起来像惯用的Go。

    60910

    GraphQL-BFF:微服务背景下的前后端数据交互方案

    它有很多调用方,各种不同的调用场景,甚至多个不同版本的接口并存,同时提供数据服务。 所有这些复杂性,都会反映到接口参数上。 接口调用的场景越多,它对接口参数结构的表达能力,要求越高。...可以构建一个完整的 GraphQL 服务。 但它们只是类型定义和函数定义,如果没有调用函数,就不会产生真正的数据交互。 前端传递的 query 查询语句,正是触发 Resolver 调用的源头。 ?...[4.5] GraphQL 不一定返回 JSON 数据格式 这是另一个有趣的事实。最初我们演示了,如何基于 JSON 数据结果,反推出 GraphQL 查询语法的设计。...举个例子: 前端需要产品数据时,从之前调用产品相关的 RESTful API,变成查询产品相关的 GraphQL。不过,需要订单相关的数据时,可能要查询另一个 GraphQL 服务。...在 Query 下的每个字段,都可能对应 1 到多个内部服务的 API 的调用和处理。只用普通函数构成的 resolverMap,不足以充分表达其中的逻辑复杂度。

    3.7K72

    GraphQL-BFF:微服务背景下的前后端数据交互方案

    它有很多调用方,各种不同的调用场景,甚至多个不同版本的接口并存,同时提供数据服务。 所有这些复杂性,都会反映到接口参数上。 接口调用的场景越多,它对接口参数结构的表达能力,要求越高。...可以构建一个完整的 GraphQL 服务。 但它们只是类型定义和函数定义,如果没有调用函数,就不会产生真正的数据交互。 前端传递的 query 查询语句,正是触发 Resolver 调用的源头。 ?...[4.5] GraphQL 不一定返回 JSON 数据格式 这是另一个有趣的事实。最初我们演示了,如何基于 JSON 数据结果,反推出 GraphQL 查询语法的设计。...举个例子: 前端需要产品数据时,从之前调用产品相关的 RESTful API,变成查询产品相关的 GraphQL。不过,需要订单相关的数据时,可能要查询另一个 GraphQL 服务。...在 Query 下的每个字段,都可能对应 1 到多个内部服务的 API 的调用和处理。只用普通函数构成的 resolverMap,不足以充分表达其中的逻辑复杂度。

    1.6K20

    GraphQL最突出的架构优势是什么?

    ,这些方法在被调用时会将操作转换为适当的 API 以跨越数据图。...对于突变,解析器可以简单地将控制权传递给一个应用层用例。 将用例作为应用程序的重心后,从 REST 切换到 GraphQL(或同时支持两者)变得轻而易举。...由于 GraphQL 语言是通行(ubiquitous)且标准化的,因此人类 和机器 会更容易理解如何集成和使用它。...6关注点的扩展和分离 GraphQL 原则指出, “你的公司应该有一个统一的图,而不是让各个团队创建很多图。” 随着越来越多的团队开始使用 GraphQL,公司内部会出现多个图的情况。...原文链接 https://khalilstemmler.com/articles/graphql/graphql-architectural-advantages/ 今日好文推荐 B站二次上市,研发

    2.2K20

    React 设计模式 0x6:数据获取

    学习如何轻松构建可伸缩的 React 应用程序:数据获取 # React 中服务端数据获取的方式 在大多数 React 应用程序中,应用程序需要来自 API 或服务器的数据才能正常运行。...# Memoization Memoization 是一种优化技术,主要用于通过存储昂贵的函数调用结果,并在再次出现相同输入时返回缓存的结果来优化计算机程序。...Memoization 函数通常更快,因为如果使用相同的参数再次调用函数,则不会重新执行函数,而是从缓存中获取结果。...在 React 中,我们可以通过以下两种方式实现 Memoization: useMemo React 提供了一个内置的钩子函数 useMemo 允许您对耗费性能的函数进行记忆化,以避免在每次重新渲染时调用它们...useCallback,允许您对耗费性能的函数进行记忆化,以避免在每次重新渲染时调用它们 只需传入一个函数和一个依赖数组,useCallback 将仅在依赖中的一个值发生变化时重新计算记忆化的函数 import

    1.2K20

    一种不错的 BFF Microservice GraphQLREST API 层的开发方式

    进行 API 编排的示例(ForkJoin)(/starwars/people/:id) hystrix - 如何对 API 使用熔断模式的示例 (/hystrix) scraper - 如何使用 scrape-it...(Dataloader) 添加了多个启用 Dataloader 示例 RxJS API 调用 - peopleWithPlanets(id : ) Starwars APIs - people(id:...这将在构建中设置集成测试环境 npm run itest:build 运行 node 服务器并对其进行集成测试 这等待服务器启动,运行测试,然后在完成时终止所有进程 npm itest:run 尝试一下...直接或通过 swagger 调用示例 REST 端点 http://localhost:3000/swagger 使用端点调用 Prometheus 指标 curl http://localhost:3000...如果启用了 JWT 安全性(环境变量 JWT_AUTH 为 true),我们需要使用登录突变 API 来获取示例 JWT 令牌(当前设置为1小时到期) Step 1 - 使用登录 mutation(突变

    2.3K10

    4种主流的API架构风格对比

    (四种 API 架构风格) RPC:调用另一个系统的函数 远程过程调用是一种允许在不同上下文中远程执行函数的规范。RPC 扩展了本地过程调用的概念,并将其放在 HTTP API 的上下文中。...服务端和客户端之间交互的机制归结为调用端点并获得响应。 易于添加新函数。...因此,客户端要么会担心调用特定端点的带来的任何可能的副作用,要么需要尝试弄清楚要调用的端点,因为客户端不了解服务器如何命名其函数。 可发现性低。...在 RPC 中,无法对 API 进行检验总结,或者发送请求来开始理解根据需求应该调用哪个函数函数爆炸性增长。创建新函数非常容易。...因此,GraphQL 为移动设备提供了更有效的数据加载方式。 复杂的系统和微服务。GraphQL 能够隐藏其 API 背后的多个系统集成的复杂性。

    2.3K30

    4种主流的API架构风格对比

    四种 API 架构风格 1RPC:调用另一个系统的函数 远程过程调用是一种允许在不同上下文中远程执行函数的规范。RPC 扩展了本地过程调用的概念,并将其放在 HTTP API 的上下文中。...易于添加新函数。 如果 API 有了新的需求,我们可以轻松地添加另一个执行这个需求的端点:1)编写一个新函数,并将其放在一个新端点之后;2)现在,客户可以访问这个端点,并获取符合其需求的信息。...因此,客户端要么会担心调用特定端点的带来的任何可能的副作用,要么需要尝试弄清楚要调用的端点,因为客户端不了解服务器如何命名其函数。 可发现性低。...在 RPC 中,无法对 API 进行检验总结,或者发送请求来开始理解根据需求应该调用哪个函数函数爆炸性增长。创建新函数非常容易。...因此,GraphQL 为移动设备提供了更有效的数据加载方式。 复杂的系统和微服务。GraphQL 能够隐藏其 API 背后的多个系统集成的复杂性。

    2.3K20
    领券