我使用的是node js最新版本和appsync,用于AWS提供的实时事件。
下面是我的代码,当我在任何通道名上推送来自突变的数据时,我没有得到任何通知。
这是我的生成器函数
const subscribe = (name, next, error) => {
console.log("call subscribe")
const subscribeDoc =
`subscription Subscribe($name: String!) {
subscribe(name: $name) {
data
name
}
}`;
return API.graphql(graphqlOperation(subscribeDoc, { name })).subscribe({
next: ({ provider, value }) => {
next(value.data.subscribe, provider, value)
},
error: console.log,
})
}
从助手调用生成器函数
export const SubscribeHandlerStoreReplyView = async (channelName) => {
Amplify.configure(config)
const subscribeChannel = subscribe(channelName, ({ data }) => {
console.log("Inside the callback :", data)
});
console.log("subscribeChannel :",subscribeChannel)
}
与appsync服务器连接时获得的输出
subscribeChannel : Subscription {
_cleanup: [Function (anonymous)],
_observer: { next: [Function: next], error: [Function: log] },
_queue: undefined,
_state: 'ready'
}
同样的代码在使用react js时也能正常工作,而且我也不知道为什么响应队列是空的。
1条答案
按热度按时间2lpgd9681#
您没有正确定义subscribeDoc和subscribe函数。有关进一步的实现,请查看此参考代码Create AppSyc with node js and subscribe event function