0

GraphQLModule我决定将创建的内容打包ng add apollo-angular到我们自己的 Angular 共享模块中。

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 根本没有实例化,但控制台输出证明并非如此。

非常感谢任何建议或帮助!

4

1 回答 1

0

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

   this.apollo
      .watchQuery(this.queryOptions)
      .valueChanges.subscribe((result: any) => {
        console.log('++++++++ RESULTS +++++++++', result)
      });
于 2019-09-30T18:26:29.740 回答