По какой-то причине мне пришлось построить сервер GraphQL только на стороне клиента, моя схема построена следующим образом:
private buildSchema(): GraphQLSchema {
const allTypes: string = ...// my types
const allResolvers: IResolvers[] = ...// my resolvers
return makeExecutableSchema({
typeDefs: allTypes,
resolvers: allResolvers
});
}
Клиент выглядит следующим образом:
this.client = new ApolloClient({
link: new SchemaLink({schema: this.buildSchema()}),
cache: new InMemoryCache({
addTypename: false
})
});
И все работает отлично, за исключением того, что мои запросы не defred .Например, если я выполню:
const gqlQuery: string = `
{
user {
name
slowResolver @defer {
text
}
}
}
`
const $result = this.apollo.getClient().watchQuery({
query: gql(gqlQuery)
});
$result
будет генерироваться только тогда, когда будет решен весь запрос (вместо user
и затем slowResolver
, как и ожидалось).
Любое представление о том, что я пропустил в рабочем процессе?