Мое требование - перевести это состояние подключения StreamBuilder в состояние ожидания.
Я использую тему публикации, всякий раз, когда я хочу загрузить данные в построитель потока, я просто добавляю данные в приемник, вызывая метод postStudentsToAssign (), здесь этот метод выполняет вызов API, который занимает некоторое время , в то время я хочу, чтобы это состояние подключения streamBuilder ожидало
Конструктор потоков:
StreamBuilder(
stream: studentsBloc.studentsToAssign,
// initialData: [],
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
// While waiting for the data to load, show a loading spinner.
return getLoader();
default:
if (snapshot.hasError)
return Center(child: Text('Error: ${snapshot.error}'));
else
return _getDrawer(snapshot.data);
}
}),
Инициализация наблюдаемого:
final _assignStudentSetter = PublishSubject<dynamic>();
Observable<List<AssignMilestoneModel>> get studentsToAssign =>
_studentsToAssignFetcher.stream;
Метод добавления данных в поток:
postStudentsToAssign(int studyingClass, String milestoneId, String subject,
List studentList) async {
var response = await provider.postAssignedStudents(
studyingClass, milestoneId, subject, studentList);
_assignStudentSetter.sink.add(response);
}