如何在Vanilla JS中创建ApolloClient订阅

时间:2020-04-20 11:48:44

标签: javascript graphql apollo-client

关于此的信息似乎很少...我找到了下面的文章,这让我接近了,但它不起作用:

How do I create a GraphQL subscription with Apollo Client in Vanilla JS

那篇文章有点老了,我正在使用apollo客户端v2.6.8,这是我的代码:

           const subs = gql`
           subscription onItemAdded 
           {
              itemAdded {
               ItemName
              }
           }`

           var subscriptionObserver = apolloClient.subscribe({
                 query: subs
              })
              .subscribe(
                 data => {
                    console.log('Data', data);
                    //See comment below ********
                 },
                 err => { console.error('Error', err); }
              )                

在调用订阅后,我立即看到控制台中记录的数据(为空,这是我预期的空值),但是当实际订阅触发时,它再也不会触发,所以我在这里遗漏了什么?

[添加项目并触发发布的变异操作已在其他地方完成,但是此操作(和我的服务器)工作正常,因为我在从另一个客户端(反应)进行测试时已验证了订阅,因此,我可以确定问题出在上面的代码上。]

1 个答案:

答案 0 :(得分:0)

我在这里发现了问题,ApolloClient'link'中的一个错字意味着它仅针对http进行了设置,我可以确认上面的代码与下面的配置一样可以正常工作

xmlns:tools="http://schemas.android.com/tools"
tools:ignore= "LockedOrientationActivity"