function * getData(){
var callback = function * (data,err) {
if(err){
yield err;
}
if(data){
yield data;
}
};
var x = $.ajax({
url: 'http://localhost:9001/mydata',
success: callback
});
}
var d = getData();
function *getData(array){
for( let data of array){
yield new Promise( (resolve, reject) => resolve(data) )
}
}
function complete(generator){
let {done, value} = generator.next();
if( ! done){
value.then( data => {
console.log(data);
complete(generator);
});
}
}
let generator = getData([0, 1, 2]);
complete(generator);
function *asynLoader(list){
for( let data of list){
yield new Promise( (resolve, reject) => resolve(data) );
}
}
function queueLoader(generator, completeHandler){
let {done, value} = generator.next();
if( ! done){
value.then( data => {
completeHandler(data);
queueLoader(generator, asyncLoader_completeHandler);
});
}
}
function asyncLoader_completeHandler(data){
console.log(data);
}
let generator = asynLoader([0, 1, 2]);
queueLoader(generator, asyncLoader_completeHandler);