Обмен данными между резольверами - PullRequest
0 голосов
/ 06 августа 2020

Может ли кто-нибудь помочь мне в обмене данными между разными резолверами в graphql. Один из подходов заключается в использовании контекста, но во многих местах в Интернете было упомянуто, что следует избегать изменения контекста.

т.е., например, у меня есть схема, как показано ниже чтобы передать некоторую дополнительную информацию в преобразователь адресов из преобразователя root, в настоящее время я использую контекст. Это правильный подход или есть лучший способ добиться этого.

1 Ответ

0 голосов
/ 08 августа 2020

Вы можете просто вернуть необходимую информацию в свой root преобразователь:

const resolvers = {
  Query: {
    getPersonById: (root, args) => {
      const person = await getPerson(args.id)
      person.address = {
        foo: 'bar',
      }
      return person
    },
  },
  Address: {
    addressLine1: (address) => {
      console.log(address) // { foo: 'bar' }
    },
  },
}
...