Что передается при добавлении и прослушивании потока и как оно используется? - PullRequest
0 голосов
/ 14 февраля 2019

Мне было трудно работать с потоками.Я прочитал много статей и, наконец, написал этот код.Я понимаю, как теоретически работают потоки, но код не имеет большого смысла для меня.Это работает, но я не понимаю, что именно происходит.

Вот как я определил свой контроллер потока -

StreamController streamController = StreamController.broadcast();

Это то, что я добавил в initState () -

streamController.stream.listen((data) {
  //call my backend api
});

Основываясь на каком-то действии, я называю это -

streamController.add(someData);

Я не понимаю, что передается во время прослушивания.Я нигде не определил data.Я не могу оставить его пустым или пустым.Где это используется ??

При добавлении, какие данные я передаю?Если мне нужны данные во время вызова API моего бэкэнда.Как мне это пройти?И мне всегда нужно слушать мой поток только в initState()?Я не могу добавить его в другом месте.Почему это?

1 Ответ

0 голосов
/ 14 февраля 2019

data - это полезная нагрузка, которая передается вам каждый раз, когда поток генерирует событие.

(data) {
  //call my backend api
}

- это функция, которую вы передаете

streamController.stream.listen(...);

, и эта функциявызывается каждый раз, когда поток получает событие.

Просто используйте

(data) {
  print('received data: $data);
}

, и это должно быть ясно.

...