Komentáře k článku
Dart – Streams

Streams sú messaging vrstva v Darte. Ak sa zamýšľate nad posielaním vlastných správ alebo eventov medzi jednotlivými objektmi, Streams sú tu pre vás.
Streams sú messaging vrstva v Darte. Ak sa zamýšľate nad posielaním vlastných správ alebo eventov medzi jednotlivými objektmi, Streams sú tu pre vás.
Eventy, deffredy, streamy
Zdravím,
tohle je v podstatě třetí druh zpracování asynchroních událostí na který jsem v poslední době narazil. Jsou tu Eventy, Defrredy (pokud vím, tak se také nazývá Features nebo Promises) a teď Streamy. Abych se přiznal tak moc nevím jaký je v tom rozdíl.
Ve finále je to o tom, že mám nějaký objekt, do něho nějakým způsobem předám svojí funkci (callback) a ta se zavolá při dokončení operace. Vždycky můžu navěsit více callbacků které se zavolají. Někdy můžu navěsit také callback pro error. Nicméně základ mi přijde stejný.
Proč je tolik druhů, jsou opravdu tak moc jiné?
Re: Eventy, deffredy, streamy
Future (též Promise) je _jedna_ asynchronně dodaná hodnota. Stream (též Observable v Reactive eXtensions) je _kolekce_ asynchronně dodaných hodnot. (Abychom si rozuměli: nedostanete celou kolekci najednou, ale dostáváte postupně jednotlivé její prvky, tak jak jsou dostupné.)
Rozdíl mezi observables (ať už Future nebo Stream) a callbacky je v tom, že observables se dají rozumně _komponovat_. Článek to nezmiňuje, ale Futures i Streamy můžete různě filtrovat, transformovat a agregovat (filter, map, flatMap, reduce, atd.).