0

当我们的项目基于 REST 时,响应时间为 200 ms ~ 当项目更改为 GraphQL 时。

由于每个节点都在尝试解析,并且在解析之后,它们的子实体也在解析。导致极高的延迟,响应时间为 - 11 秒!

我所做的是尝试提取所有需要的信息,包括所有子实体,并从查询解析器中解析这个巨大的对象。

响应时间减少到 800 毫秒。

但是,子实体的解析器仍在发生!(我不得不为这个测试关闭它们)。在某些情况下如何关闭它们?

有没有其他方法可以解决这个问题?

4

1 回答 1

0

听起来您可能只想在父对象上的属性未定义时才为每个字段获取关联数据。所以,如果你的解析器看起来像这样:

foos ({ id }, args, context) {
  return getFoos(id)
}

只需进行有条件的获取数据的调用,如下所示:

foos ({ id, foos }, args, context) {
  return foos ? foos : getFoos(id)
}
于 2017-10-27T20:57:05.860 回答