Angular + Graphql + Apollo - Два WatchQuery ngOnInit - PullRequest
0 голосов
/ 31 августа 2018

Я работаю над проектом с Angular 6 и GraphQL. Я читал всевозможные реализации, и некоторые из них работают, а некоторые нет. В частности, мне нужно выполнять запрос GraphQL всякий раз, когда мне нравится, но Angular ничего не делает, например, если у меня есть два разных watchQuery в методе ngOnInit:

  ngOnInit() {

    this.fieldbookList = this.apollo.watchQuery<Query>({
        query: gql`
        query getAllFieldBook
            {
              allFieldBook {
                _id
                field_number
                lote
                variety
              }
            }
        `,
        fetchPolicy: 'no-cache'
    })
    .valueChanges
    .pipe(map(
        result => result.data.allFieldBook
        ));

    this.usuarios = this.apollo.watchQuery<Query>({
        query: gql`
        query getUsers($perfil:String!){
          allUsers(perfil:$perfil){
            username
            nombre
            perfil
            apellido_paterno
            apellido_materno
            email
            rut
          }
        }
        `,
        variables: { perfil : "Cliente" },
        fetchPolicy: 'no-cache'
    })
    .valueChanges
    .pipe(map(
        result => result.data.allUsers
        ));
  }

Первый запрос проходит хорошо. Второй, ничего не делать. Я действительно не понимаю, почему это не работает.

Определение обоих объектов как наблюдаемых:

export class ListComponent implements OnInit {

  fieldbookList: Observable<FieldbookSearch[]>;
  usuarios: Observable<Usuarios[]>;

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

Образ консоли отладчика

Может быть, подход не в порядке? Вы когда-нибудь сталкивались с такими проблемами? Я уже прошел три ночи, пытаясь решить это. Любая хорошая ссылка для решения этой проблемы будет приветствоваться, или любая информация.

Уже прочитано это

Спасибо!

...