Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
800 of 1024 menu
◀ ▶

Перечисление ConnectionState

Перечисление ConnectionState лежит в AsyncSnapshot у FutureBuilder и StreamBuilder. Значения показывают, ждут ли данные, идёт ли активная подписка или работа завершена.

Синтаксис

ConnectionState.waiting

Значения

Значение Описание
none Нет активного Future или Stream, initialData не задан.
waiting Ожидание первого результата или события.
active Stream выдал промежуточные данные, но не закрыт.
done Future завершён или Stream закрыт.

Пример

Давайте покажем waiting у FutureBuilder:

import 'package:flutter/material.dart'; Future<String> slow() async { await Future<void>.delayed(const Duration(milliseconds: 100)); return 'abcde'; } void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: FutureBuilder<String>( future: slow(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const Text('12345'); } return Text(snapshot.data ?? 'empty'); }, ), ), ), ), ); }

На экране ConnectionState.waiting покажет '12345' до готовности future.

Пример

Давайте дойдём до ConnectionState.done:

import 'package:flutter/material.dart'; Future<String> fast() async => 'abcde'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: FutureBuilder<String>( future: fast(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.done) { return Text(snapshot.data ?? '12345'); } return const Text('12345'); }, ), ), ), ), ); }

На экране ConnectionState.done выведет 'abcde' из snapshot.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить