Завершить функцию в dart/flutter

У меня есть функция, которая возвращает будущее.

      main(){
function().timeout(Duration(milliseconds: 100), onTimeout: () {
        print("exit function");
      });
}

Future<void>function()async{
  await Future.delay(Duration(milliseconds: 500);
  print("function was run");
  return Future.value(null);
}

Я хочу выйти из функции по истечении тайм-аута. В приведенном выше примере я ожидаю, что результат exit function.

Однако вывод консоли флаттера:

      exit function
function was run

Кто-нибудь знает, как получить ожидаемый результат?

  • функция может быть любого типа.

Спасибо за твою помощь

1 ответ

Невозможно отменить функцию Future. В качестве альтернативы вы можете рассмотреть возможность использования Streams, если это соответствует вашему варианту использования. Вы можете подписаться на StreamSubscription и позвонитьcancel()если это необходимо. Вот образец , представленный в сообщении.

Другие вопросы по тегам