await ничего не запускает, он приостанавливает выполнение кода, пока фьюча не вернёт результат. Фьючу отменить нельзя.
Коллбек вешает на фьючу)
final future = Future.delayed(Duration(seconds: 2)); future.ignore() Можно заигнорить, тока не проверял на практике как оно работает
https://api.flutter.dev/flutter/dart-async/Future-class.html Не вижу такого метода ignore, откуда ты его взял?
Хм, недокументированный метод?
Ты игноришь результат, а фьюча так же создаётся, и коллбеки вызываются не смотря на игнор
Это кстати порой удобнее чем unawated, который раньше был вообще функции линта
Вполне возможно, я тока недавно заметил метод, не проверял. Как вариант после delay проверить условие, если не наступило cancelled, то выполнить нужное действие
Я те говорю... Это тоже самое что создание фьючи и навешивание коллбеков цепочкой внутри синхронной функции
Я правильно понимаю разницу, unawaited() — это "я намеренно не заэвэйтил вызов метода — запустил фьючу и выполняю код дальше" ? А ignore() — "я вызвал фьючу, и меня не волнует её результат или возможная ошибка"
Обсуждают сегодня