Выбор ответа Middle Dart: Future, Stream, изоляты спрашивают часто обновлено
Dart: параллельные запросы
Вопрос
Два независимых запроса по 1 секунде. Какой код выполнится примерно за 1 секунду?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: final r = await Future.wait([getA(), getB()]);. Future.wait получает уже запущенные Future: оба запроса стартуют сразу и ждутся вместе, время около максимума из двух.
Варианты ответа
final a = await getA(); final b = await getB();final r = await Future.wait([getA(), getB()]);правильный ответfor (final f in [getA, getB]) { await f(); }await getA().then((_) => getB());
Разбор
Future.wait получает уже запущенные Future: оба запроса стартуют сразу и ждутся вместе, время около максимума из двух. Последовательные await, цикл с await и цепочка then запускают второй запрос только после первого, итого около 2 секунд. В Dart 3 то же можно записать через record: await (getA(), getB()).wait.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.