【问题标题】:Why Apollo mutate never complete?为什么阿波罗变异永远不会完成?
【发布时间】:2019-08-31 10:04:49
【问题描述】:

我坚持阿波罗突变 2 天。

当我在 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
      }
    }
  `;
}

我想在我的订阅完成回调中获得一些结果。 请任何帮助 谢谢

【问题讨论】:

  • 控制台有错误吗?还是您在开发工具的网络选项卡中看到任何响应?如果你分享它,检查一下会很有帮助。
  • 您能否在浏览器控制台中检查您的网络选项卡,看看请求是否执行成功?
  • 嗨。网络选项卡中没有错误,请求已成功执行并具有预期的响应。

标签: angular typescript graphql apollo


【解决方案1】:

我解决了我的问题。问题是 GraphQlModule 没有导入到我的模块中。

此代码有效。

this.apollo.mutate({
      mutation: gql`mutation createAccount($data: AccountCreateInput!) {
        createAccount(data: $data) {
          id
          username
          uid
        }
      }
    `,
    variables: {
      "data":{
        "uid": "DKpWcH6q2wRCTeUTigrQasdadsVcFfqaS2",
        "username": "ydfsdfsfd@mail.com"
      }
    },
    }).subscribe(result => console.log(result))

此代码不起作用。可能我需要导入另一个模块。


this.createAccount.mutate({
      data: {
        uid: 'DKpWcH6q2wRCTeUTigrQasdadsVcFfqaS2',
        username: 'ydfsdfsfd@mail.com',
      },
    }).subscribe(result => {
      console.log(result);
    });

谢谢

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2017-03-23
    相关资源
    最近更新 更多