0

我们正在使用 Apollo Angular Client 来调用 Apollo Server。我将两个查询组合在一起。其中一个失败了。

在服务器端,其中一个解析器抛出错误。

throw new UserInputError("ERR_MSG", { "message":"addtional info"})

当其中一个调用失败时,我应该如何处理客户端的响应?我想使用来自一个查询的数据,并为失败的数据显示一条错误消息。

this.apollo.watchQuery({
   query: gql(query),
   variables: { a: 'a' }
   }).valueChanges.subscribe(
   (response) => {
   let a = resp.data?.Query1;
   let b = resp.data?.Query2;
   },
   (err) => {
   // always get here with only the one error
   }
);

我什至不确定这是服务器端问题还是客户端问题?我猜我在服务器端做错了什么,因为我什至没有看到在操场上传回的成功数据。

4

1 回答 1

0

我的问题确实是服务器端的。尽管许多文章都谈到了将 null 添加到模式中,但我们让构建从类中自动创建我们的模式。所以为了解决我的问题,我必须在我的所有查询中添加 nullable。添加后,我的组合查询返回成功数据和失败数据以及错误对象。

@Query(() => [MyClass]**, { nullable: true }**)
于 2021-02-26T14:55:05.337 回答