Какой лучший способ вызвать другой распознаватель в Apollo Server? - PullRequest
2 голосов
/ 01 июня 2019

Скажем, вы хотите вызвать распознаватель createdAt из распознавателя updatedAt.Например, это не работает:

{
  Review: {
    createdAt: review => review._id.getTimestamp(),
    updatedAt: review => review.updatedAt || this.createdAt(review)
  },
}

Я понимаю, что мог бы создать функцию reviewCreatedAt(), которая вызывается из обоих, но я ищу способ вызова решателя createdAt.

1 Ответ

1 голос
/ 01 июня 2019

Не существует стандартного способа вызова другого распознавателя.Использование this не будет работать, даже если вы не используете функцию со стрелкой, потому что контекст теряется при вызове распознавателя базовым кодом.Вы можете сделать что-то вроде этого:

const resolvers = {
  Review: {
    createdAt: review => review._id.getTimestamp(),
    updatedAt: review => review.updatedAt || resolvers.Review.createdAt(review)
  },
}

Однако, если вы используете модель данных, вам может оказаться проще просто перенести эту логику в модель данных (используя вычисляемое или виртуальное поле).

...