Last active
August 29, 2015 14:16
-
-
Save yoshuawuyts/f8dfdd1644e8829e428c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// stepper.js | |
// 2015 cloudbender | |
// iojs 1.0.2 | |
// generator works and steps itself, | |
// from the event loop; | |
process.on( 'exit', function(){console.log('bye');} ); | |
(function main(){ | |
// a generator constructor | |
function* stepper(object) { | |
yield setImmediate( function(me,ob){ ob.status='reset'; console.log(ob); me.next(); }, this,object ); | |
yield setImmediate( function(me,ob){ ob.status='step1'; console.log(ob); me.next(); }, this,object ); | |
yield setImmediate( function(me,ob){ ob.status='step2'; console.log(ob); me.next(); }, this,object ); | |
yield setImmediate( function(me,ob){ ob.status='stepN'; console.log(ob); me.next(); }, this,object ); | |
yield setImmediate( function(me,ob){ ob.status='ready'; console.log(ob); me.next(); }, this,object ); | |
} | |
// create some objects | |
var object1 = {'name':'object 1', 'status':'created'}; | |
var object2 = {'name':'object 2', 'status':'created'}; | |
var object3 = {'name':'object 3', 'status':'created'}; | |
// pass each object into a new stepper constructor | |
// start each new stepper | |
new stepper(object1).next(); | |
new stepper(object2).next(); | |
new stepper(object3).next(); | |
console.log('main completed'); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment