Flutter работает в однопоточном режиме, в данном режиме программа выполняется без возможности ветвления потока и если требуется параллельное выполнение какой-либо операции, то испольхуется ассинхронность. Во Flutter ассинхронность можно организовать двумя способами:
- при помощи класса Future — старый способ
- при помощи ключевых слов async/await — новый способ
Давайте ниже разберем каждый способ по отдельности.
Определение ассинхронности при помощи класса Future
Ключевым классом для создания ассинхронностей во Flutter является Future. Чтобы определить ассинхронность необходимо объявить переменную с возвращаемым типом
void doWork(){
print('Начало программы');
Future<String> future = getFuture();
future.then((m){
print(m);
});
}
Future<String> getFuture(){
return Future.delayed(Duration(seconds:2), ()=>'Hello From Duration');
}
void main(){
doWork();
print('Конец программы');
}
результат выполнения данной программы будет такой
Начало программы
Конец программы
Hello From Duration
Как мы видим, программа, программа сразу выполняет и завершает однопоточный снхронный код и только после задержки в 2 секунды в конце завершается исполнение ассинхронного кода.