微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

订阅字段必须返回 Async Iterable收到:未定义

如何解决订阅字段必须返回 Async Iterable收到:未定义

我将 graphql nodejs 与 apollo-server 一起使用。 当我尝试时出现此错误

enter image description here

我已经在解析器中返回了 pubsub.asyncIterator。 它返回错误。另一个项目相同的设置有效,但它不起作用。我在这里检查了一些堆栈问题,但我无法解决

服务器: App.js

const express = require('express');
const mongoose = require('mongoose');
const { ApolloServer } = require('apollo-server');


const { mainSchema } = require('./graphql/schemas/index');
const { rootResolver } = require('./graphql/resolvers/index');

const app = express();


const server = new ApolloServer({
typeDefs: mainSchema,resolvers: rootResolver,subscriptions: {
         path: `/graphql`,onConnect: (connectionParams,webSocket,context) => {
         console.log('Client connected');
},ondisconnect: (webSocket,context) => {
         console.log('Client disconnected')
    },},});

server.listen(3000,"192.168.1.106").then(({ url }) => {
console.log(`?  Server ready at ${url}`);
});

订阅解析器

    Subscription :{
    userNotifications : withFilter(
            ()=>pubSub.asyncIterator(NEW_NOTIFICATION_CREATE),(payload,variables)=>{
                console.log("payload=>",payload);
                console.log("variables=>",variables);
                return true
            }
        )}}

PubSub.js

  const { PubSub } = require('graphql-subscriptions')

  const pubSub =new PubSub()

  exports.pubSub = pubSub;

解决方法

我必须使用 subccribe 关键字来定义 subs。谢谢我。 订阅:{ 用户通知:withFilter( 订阅:()=>pubSub.asyncIterator(NEW_NOTIFICATION_CREATE),(有效载荷,变量)=>{ console.log("payload=>",payload); console.log("变量=>",变量); 返回真 } )}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。