GraphQL-在解析器之间共享数据

时间:2019-03-23 06:35:24

标签: graphql

根据此article,我们应避免在解析器内部更改上下文,并且在需要时也可能不存在数据。尽管我们不建议您这样做,但我们可以做到这一点,我们只需要在使用前检查数据是否存在即可。它运作良好,但现在我发现了一个例外。在下面的示例中,标签解析器被调用了两次,当我在第一个调用中将数据添加到上下文中时,仅在异步执行时,第二个调用中它不可用:

query TestQuery {
  mydata {
    locations: tags (type: LOCATION) {
      name
    }
    allTags: tags {
      name
    }
  }
}

这是解析器部分

  mydata: {
    tags: async (_parent, _args, _context, _info) => {
      if (!_context.fetchedTags) {
        _context.fetchedTags = await getItAsynchronously()
      }
      return _context.fetchedTags
    }
  }

如果我不能使用上下文,应该在哪里放置共享数据? (考虑到我可以更深入)

0 个答案:

没有答案