Apollo Angular watchQuery不返回结果或错误

时间:2019-09-25 17:43:22

标签: angular module apollo apollo-angular

我决定将GraphQLModule创建的ng add apollo-angular包装到我们自己的Angular Shared Module中。

https://www.apollographql.com/docs/angular/basics/setup/#installation-with-angular-schematics

在此模块内执行查询时,我收到了服务器的响应。

但是,当在另一个应用程序中使用此模块时,我们没有收到任何响应或错误:

  myQuery = gql`
    {
      member {
        id
        details {
          id
        }
      }
    }
  `

  queryOptions: WatchQueryOptions = {query: this.myQuery, errorPolicy: 'all'}
  myQueryObs: Observable<any>

  constructor(private apollo: Apollo) {}

  ngOnInit() {
    this.myQueryObs = this.apollo.watchQuery<Query>(this.queryOptions)
    .valueChanges.pipe(map (results => {
      if (results.errors) {
        console.log('ERRORS!!! YAY!!!') // NEVER GET HERE
      }
      console.log('RESULTS') // NEVER GET HERE EITHER
    }));
  }

我已经将废话记录下来了,无法确定为什么它根本没有回应。它的行为就像根本没有实例化Apollo一样,但是控制台输出证明并非如此。

任何建议或帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

好的,答案很简单。上面的示例返回一个observable,这就是为什么没有结果的原因。我仍然需要subscribeobservable才能获得结果。因此,要获得结果,最好是:

   this.apollo
      .watchQuery(this.queryOptions)
      .valueChanges.subscribe((result: any) => {
        console.log('++++++++ RESULTS +++++++++', result)
      });