We have discussed so far how we can model asynchronous events as a continuous stream of data on a time axis, or stream modeling. Events can be AJAX data, mouse clicks, or some other type of event. Modeling things this way makes for an interesting perspective on things but, looking at a double-click situation for example, doesn't mean much unless we are able to dig out the data. There might be another case where there is data that we need to filter out. What we are discussing here is how to manipulate streams. Without that ability, stream modeling itself has no practical value.
There are different ways to manipulate data: sometimes we want to change the data emitted to some other data and sometimes we might want to change how often the data is being emitted to a listener. Sometimes, we want our stream of data to...