Ответ 1
Оба StreamBuilder
и FutureBuilder
имеют одинаковое поведение: они прослушивают изменения на соответствующем объекте. И активируйте новую сборку, когда они будут уведомлены о новом значении.
Поэтому, в конце концов, их отличия заключаются в том, как объект, который они слушают, работает.
Future
похоже на Promise
в JS или Task
в С#. Они представляют собой асинхронный запрос. Futures
имеют один и только один ответ. Обычное использование Future
- это обработка вызовов HTTP. То, что вы можете слушать в Future
, это состояние. Было ли это сделано, закончилось с успехом или произошла ошибка. Но это так.
Stream
с другой стороны, подобен асинхронному Iterator
в JS. Это может быть ассимилировано до значения, которое может меняться со временем. Обычно это представление веб-сокетов или событий (например, щелчок). При прослушивании Stream
вы получите каждое новое значение, а также, если Stream
имеет ошибку или завершен.
Как каждый из них прослушивает изменения в динамическом списке?
Future
не может слушать переменные изменения. Это одноразовый ответ. Вместо этого вам нужно будет использовать Stream
.