NodeJS 节点js和订阅事件函数的AppSync问题

koaltpgm  于 2023-03-17  发布在  Node.js
关注(0)|答案(1)|浏览(106)

我使用的是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时也能正常工作,而且我也不知道为什么响应队列是空的。

2lpgd968

2lpgd9681#

您没有正确定义subscribeDocsubscribe函数。有关进一步的实现,请查看此参考代码Create AppSyc with node js and subscribe event function

相关问题