我正在使用Angular 6和GraphQL进行项目。我正在阅读各种不同的实现,有些实现了,有些则没有。 特别是,我需要在需要时执行GraphQL查询,但是Angular不做任何事情,例如,如果我在ngOnInit方法中有两个不同的watchQuery:
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的调用,而不是两个都显示:
也许这种方法行不通?您是否遇到过此类问题?我已经通过了三个晚上试图解决这个问题。任何解决此问题的良好链接都将受到欢迎,或者提供任何信息。
已经阅读this
谢谢!