我正在使用Apollo graphql框架,似乎正在启动并运行订阅。但是我无法从订阅中触发任何事件,有关Apollo客户端的文档很少涉及纯Node.js和普通javascript。
该项目正在为红色节点制作几个节点,这些节点将使用供应商的graphql接口来获取有关功耗和电价的不同数据。为此,我还需要使用订阅。对graphql来说是相当新的东西,因此推荐使用apollo框架。
result = tibber.getSubscription('subscription{ liveMeasurement(homeId:"c70dcbe5-4485-4821-933d-a8a86452737b"){timestamp power maxPower accumulatedConsumption accumulatedCost}}');
// returns an Observable from the apollo client subscribe()
// client.subscribe({ query: gql`${query}` });
let sub = result.subscribe({
next (data) { console.log(data); },
error (err) { console.log(err); }
});
本来希望console.log在几秒钟后会触发一些数据,因为此订阅适用于供应商api资源管理器上的演示帐户。 没有返回错误,订阅对象(子)处于“就绪”状态。
答案 0 :(得分:0)
我的建议:分而治之
我将从带有apollo客户端的标准react应用开始。为了简单起见,您可以使用<Query/>
组件。在这一步中,最重要的是熟悉authentication
下一步:直接使用客户端,而不使用组件。仍使用react use ApolloConsumer-您的组件可以访问client
prop。您可以使用从client.query()
(componentDidMount()
,console.log
)中调用的setState
。
如果您喜欢香草this tutorial,则更合适。
下一步将与subscriptions一起使用。同样,从<Subscription/>
组件开始。之后,您应该已经正确配置了客户端(传输,身份验证)。
在这一步,您开始移至节点env,例如寻找诸如this之类的示例,并结合先前获得的知识。