Серверная подписка Apollo возвращает ответ до того, как решатель будет создан - PullRequest
0 голосов
/ 09 июня 2019

Я обнаружил ошибку при вызове распознавателя в подписке, но ответ возвращается до завершения распознавателя. Как показано ниже, поле create_by обычно разрешается функцией getUser, и у меня нет ошибок для других операций, не связанных с подписками. Клиенты получают нулевое значение для поля created_by.

Схема

Place {
    ...other fields
    created_by: User
}

Подписка

Subscription: {
    addedPlace: {
        resolve: (payload, args, context, info) => {
            console.log('subscription --> resolve a', payload, '\n created_by: ',payload.addedPlace.place.created_by);
                // created_by is a valid id string here
            return payload.addedPlace;
        },
        subscribe:  withFilter(
            () => pubsub.asyncIterator('addedPlace'),
            ({ addedPlace }, variables) => {
                return addedPlace.tripId == variables.tripId;
            },
        )
    }
}
   Place {
        created_by: async ({ created_by }, args, { userLoader }) => { return await getUser(created_by, null, userLoader); },
    }
...