繁体   English   中英

如何在Apollo GraphQL解析器的一个函数中解析2种不同的方法?

[英]How to resolve 2 different methods in one function on Apollo GraphQL resolver?

我有这个解析器

SLAccount: (_, { imsUserId, imsToken }, context) =>
  new Promise((resolve, reject) => {
    addAuth(context, imsUserId, imsToken);
    context.model
      .getUserAccount(getEndpoint(imsUserId, imsToken))
      .then(resolve)
      .catch(reject);
  }),

但是我需要在其中包含另一个方法/模型:

  getHardware(endpoint) {
    return this.connector
      .get(
        `${endpoint}/...`,
      )
      .catch(res => this.handleError(res));
  }

所以我需要这样的东西:

SLAccount: (_, { imsUserId, imsToken }, context) =>
  new Promise((resolve, reject) => {
    addAuth(context, imsUserId, imsToken);
    context.model
      .getUserAccount(getEndpoint(imsUserId, imsToken))
      .then(resolve)
      .catch(reject);

    context.model
      .getHardware(getEndpoint(imsUserId, imsToken))
      .then(resolve)
      .catch(reject);
  }),

问题是,我不需要同时调用它们,有时我只需要SLAccount内部的那些方法/模型SLAccount

那么解决这个问题的最佳方法是什么?

GraphQL由需求(查询)驱动。

当您需要account只需进行查询即可。 当您需要account和相关hardware只需查询两者-其他的解析器将被自动调用。 这是graphQL背后的基本思想。 查找有关graphQL中的关系的任何教程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM