Я хочу понять, как потоки работают с блочным шаблоном во флаттере?

Что делает emit.forEach()? Насколько я понимаю, он принимает поток, но как пользовательский интерфейс перестраивает себя и что такое параметр onData? Я хочу вернуть поток данных для клиентской матрицы sdk

  on<StartMatrixEventSubmitted>((event, emit) async {
      emit(MatrixLoadingState());
      await repo.getAllRooms().then((value) async {
        await emit.forEach(
          value.onSync.stream,
          onData: (value2) {
            print('data');
            return MatrixSuccuClientState(rooms: value.rooms);
          },
        );
        this.myRooms = value.rooms;
        emit(MatrixClientSynced());
      });
    });
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот описание того, что emit.forEach делает в документы:

Subscribes to the provided stream and invokes the onData callback when the stream emits new data and the result of onData is emitted.

По сути, это то же самое, что и метод списка .map(). Все данные (элемент) в списке будут преобразованы в другое значение. Например: объект в строку

emit.forEach принимает два значения: поток, который он должен слушать, и функцию onData. Он будет прослушивать все значения, испускаемые потоком, и преобразовывать их в другое значение (в данном случае MatrixSuccuClientState). Думайте о value2 в onData: (value2) как о "element[index] в списке". value2 — это текущее испускаемое значение потока. Я думаю, что вы ищете:

onData: (currentlyEmittedValue) => MatrixSuccuClientState(rooms: currentlyEmittedValue.rooms),

Я бы посоветовал понять Streams во флаттере, прежде чем переходить к блоку. Предлагаю посмотреть этот видео. После этого можно было узнать, как работает блок в этом страница разработки

Другие вопросы по теме