#flutter #graphql #aws-appsync
#флаттер #graphql #aws-appsync
Вопрос:
Недавно я начал использовать AWS AppSync amp; Flutter. Мне немного сложно связать их друг с другом.
Я использую пакет graphql_flutter и не смог понять, как его использовать для запросов.
Вот мой фрагмент кода, о котором идет речь:
final HttpLink httpLink = HttpLink(
uri: 'https://myapi.xyz.com/graphql',
);
final AuthLink authLink = AuthLink(
getToken: () async => 'Bearer ${globals.token}',
);
final Link link = authLink.concat(httpLink);
GraphQLClient client = GraphQLClient(link: link, cache: InMemoryCache());
QueryOptions query = QueryOptions(documentNode: gql(queries.getAll));
var result = await client.query(query);
Я получаю сообщение об ошибке ниже:
Error: 'await' can only be used in 'async' or 'async*' methods.
var result = await client.query(query);
Как я могу заставить все это работать?
Ответ №1:
Вам необходимо использовать функцию Future при работе с асинхронными методами. Вы можете изменить свой метод следующим образом:
Future<QueryResult> getRepositories(int numOfRepositories) async {
final HttpLink httpLink = HttpLink(
uri: 'https://myapi.xyz.com/graphql',
);
final AuthLink authLink = AuthLink(
getToken: () async => 'Bearer ${globals.token}',
);
final Link link = authLink.concat(httpLink);
GraphQLClient client = GraphQLClient(link: link, cache: InMemoryCache());
QueryOptions query = QueryOptions(documentNode: gql(queries.getAll));
var result = await client.query(query);
}
Вы можете прочитать больше об асинхронном программировании из официальной документации.