从那以后,我坚持使用阿波罗突变。
当我在angular apollo生成的代码上调用一个变异并订阅时,订阅永远不会完成。我想从服务器获取结果但没有返回任何内容。
我不知道为什么它永远不会完成。当我使用Postman直接调用带有post请求的graphql服务器时,我得到了预期的结果。
constructor(
private createAccount: CreateAccountGQL,) {
}
ngOnInit() {
this.createAccount.mutate({
data: {
uid: 'sdfsdfsdfs',
username: 'yxydfsdsdsdfsfsfsd',
},
}).subscribe(result => {
// THIS CODE NEVER EXECUTE
console.log(result)
});
}
这是生成的代码
@Injectable({
providedIn: "root"
})
export class CreateAccountGQL extends Apollo.Mutation<
CreateAccountMutation,
CreateAccountVariables
> {
document: any = gql`
mutation createAccount($data: AccountCreateInput!) {
createAccount(data: $data) {
id
username
uid
}
}
`;
}
我想在订阅完整回调中获得一些结果。请帮忙谢谢
我解决了我的问题。问题是我的模块中没有导入GraphQlModule。
这段代码工作。
this.apollo.mutate({
mutation: gql`mutation createAccount($data: AccountCreateInput!) {
createAccount(data: $data) {
id
username
uid
}
}
`,
variables: {
"data":{
"uid": "DKpWcH6q2wRCTeUTigrQasdadsVcFfqaS2",
"username": "[email protected]"
}
},
}).subscribe(result => console.log(result))
此代码不起作用。可能是我需要导入另一个模块。
this.createAccount.mutate({
data: {
uid: 'DKpWcH6q2wRCTeUTigrQasdadsVcFfqaS2',
username: '[email protected]',
},
}).subscribe(result => {
console.log(result);
});
谢谢