从Appsync客户端中对GraphQL突变的有角订阅

我正在使用GraphQL和AWS中的Appsync在Angular中使用聊天应用程序。创建新聊天时的工作流程是模拟新聊天并将其发送到服务器,在服务器端会为此聊天生成一个chat_id,我需要将其检索并将其发送到本地商店。>

我的想法是,我应该能够订阅mutate函数,或者我在进行突变时创建的可观察查询。但是,尝试订阅时出现错误“ observable.subscribe不是函数”。如果我尝试订阅整个功能(client.mutate功能),则相同。

这是导致问题的当前代码:

this.appsync
      .hc()
      .then(client => {
        const observable: ObservableQuery = client.mutate({
          mutation: createChatRoom,variables: {
            input: {
              user_id: user.id,text: text,}
          },fetchPolicy: "no-cache"
        })
        observable.subscribe(data => console.log(data));
      })

我还可以在控制台上记录可观察对象的日志,并查看这些值是否存储在可观察对象的__zone_symbol_value变量中。但是我无法检索这些值,也无法订阅可观察的值。

关于如何进行此操作的任何想法或提示?

zhuhao568 回答:从Appsync客户端中对GraphQL突变的有角订阅

运行client.mutate之后,我可以通过添加.then()语句来解决此问题。解决方案代码:

this.appsync
  .hc()
  .then(client => {
    const observable: ObservableQuery = client.mutate({
      mutation: createChatRoom,variables: {
        input: {
          user_id: user.id,text: text,}
      },fetchPolicy: "no-cache"
    }).then(data => {
          conversation.id = data.data.createChatRoom.chat_id;
  })

由于某种原因,我不得不调用data.data,但我不确定为什么。如果有人知道,请随时回答。否则,效果很好:)。

本文链接:https://www.f2er.com/3030800.html

大家都在问