#flutter
#flutter
Вопрос:
Я должен получить accountId
. Это строка, которая извлекается с помощью асинхронного вызова. Эта строка используется для многочисленных вызовов ( GraphQL
). После входа в систему я могу получить userId
из Auth
объекта и с помощью этого я могу выполнить асинхронный вызов getAcocountIdFromUserId()
. В настоящее время я сохраняю accountId
в локальном хранилище. Но для этого все еще требуется асинхронный вызов (возвращает future). У моего клиента graphql есть свойство, которое может принимать строку (то есть идентификатор учетной записи). Я не хочу использовать Futurebuilder
виджет, потому что идентификатор учетной записи не имеет ничего общего с пользовательским интерфейсом. В идеале я хотел бы добавить accountId
к моим запросам graphql (поскольку большинство из них принимают AccountId в качестве параметра) в моем разделе обслуживания. Но опять же, для этого требуется строка, а не будущее… Как я мог бы добавить AccountId в качестве параметра в мой класс запросов:
class GraphQueries{
******************************************************************************************
//Would like to have my `accountId here as a string!! Have it stored in local storage....
static String getLearnBundlesForAccount = """query MyQuery($accountId: String!) {
getLearnBundlesForAccount(accountId: $accountId) {
courses
description
id
}
}""";
static String fetchMissingConsignments = """ query MyQuery($accountId: String!) {
getCountMissingConsignmentNotes(accountId: $accountId)
}""";
}
Комментарии:
1. Если у вас есть функция, которая возвращает Future<String>, и вы не хотите использовать FutureBuilder для извлечения строки, тогда просто используйте ключевое слово await для извлечения идентификатора учетной записи. Пожалуйста, объясните мне, если я неправильно понял ваш вопрос.
Ответ №1:
Если вы хотите использовать значение Future, просто вызовите его с помощью ключевого слова await .
accountId = await getAcocountIdFromUserId();