GenPromises

by Jose Montero

JavaScript

var GenProm = (function(){

  return{
  	
  	arr: [{id: '1'}, {id: '2'}],

    
    process : function(id)
    {
			return new Promise((resolve, reject) => {
    		resolve("Processing ID: "+id);
  		});
		},
    deleteItems : function*()
    {
			yield* this.arr;
		},
 		execute : function()
  	{

    
			
    	var obj = it.next();
      

    	var id = '';
    
    	if(!obj.done)
    	{
    		console.log("OBJ: "+obj.value.id);
      	id = obj.value.id;
     	}
      
			return new Promise((resolve, reject) => {
      
        	console.log(obj.done)

				if(!obj.done) 
        	this.process(id).then((msg) =>{ 
          	console.log(msg);
            
            	this.execute();
              	resolve(id);
         		
    			});
          else
            console.log("ALL DONE!")
            
			});
		}    
  
  };

})();
var it = GenProm.deleteItems();

GenProm.execute().then((id) => console.log("ID: "+id+" processed!"))
//GenProm.execute().then((id) => console.log("ID: "+id+" processed!"))
//execute().then((id) => console.log("ID: "+id+" processed!"))