【问题标题】:Subscription field must return Async Iterable. Received: undefined订阅字段必须返回 Async Iterable。收到:未定义
【发布时间】:2021-07-06 14:28:44
【问题描述】:

我将 graphql nodejs 与 apollo-server 一起使用。 当我尝试时,我得到了这个错误:

我已经在解析器中返回了 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;

【问题讨论】:

    标签: node.js graph apollo graphql-subscriptions async-iterator


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 2018-10-19
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多