Простой ответ: вы не можете повторно запустить Future.
Будущее может быть завершено только один раз.Более того, Future представляет результат асинхронного вычисления.Я думаю об этом так: вы запускаете задачу , которая возвращает токен (Future).Когда задачи завершаются, он устанавливает значение на будущее.
Кроме того, Future может иметь свое значение, установленное только один раз, его нельзя завершить двумя различными значениями (даже задачей, результат которой он представляет). Когда значение установлено, оно всегда будет содержать одно и то же.один, и не разрешать изменение.
В вашем случае вам нужно снова вызвать fetchData
.
Если у вас есть функция, которая может возвращать несколько значений, вы можете использовать Stream
, но этот подход не подходит для вашей проблемы.