У меня есть функция, которая извлекает данные из базы данных, и если данных нет, она вызовет веб-службу, поместит ответ в базу данных и вернет ответ.
Чтобы избежать многократного вызова веб-служба, которую я хочу, если есть несколько вызовов функции во время выполнения вызова веб-службы, каждый вызов после первого ждет ответа на первый вызов без вызова веб-службы.
Как я могу этого добиться?
Пример кода, который у меня есть:
Future<String> function() async {
String data = await database.getData();
if (data == null) {
data = await callWebService();
await database.setData(data);
}
return data
}
Если это важно, я использую Chopper для вызова веб-службы и Mobx для управления состоянием моего приложения .