Завершить функцию в 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()
если это необходимо. Вот образец , представленный в сообщении.