News for hackers. Stuff that matters.
Re:A simpler web architecture using React, Flux, CSP, and FR... by jarpineh on Saturday August 15, 2015 @05:20AM (#10064821)
For a light weight, ES5 style version, I have used a function generator (or factory, if you prefer). It keeps iteration state in its closure, and the resulting function updates it when its called. Your code calls generated function from then on. You can easily use arguments to reset the state, or to get something else to happen.

 	function gen_f() {

 		var count = 0;

 		function f() {
 			count += 1;
 			return count;
 		}
 		return f;
 	}
Probably you could use csp.take(channel) like in OP this way, too. I used this solution primarily because I couldn't figure out how generators handle arguments in iteration calls. My problem was to find a string that should be returned for a given index (where there was some complex rules on what string was active when) and to keep looping a list indefinitely. Generators seem to make things syntactically cleaner, but for me at least reasoning about them has been challenging in JS context.

There are no comments on this comment yet.