1 var getFun=function(value){ 2 return function(callback){ 3 setTimeout(function(){ 4 callback(value); 5 },1000); 6 }; 7 } 8 9 ;+function(gen){ 10 var next=gen(); 11 function nextyield(result){ 12 var item=next.next(result),value; 13 if(item.done) return; 14 value=item.value; 15 //console.log(typeof value); 16 if(typeof value=="function"){ 17 value(nextyield); 18 return; 19 } 20 nextyield(value); 21 } 22 nextyield(); 23 24 }(function *(){ 25 26 var a=yield getFun(10); 27 console.log(a); 28 var b=yield 3; 29 var c=yield 2; 30 var d=yield getFun(15) 31 console.log(d); 32 console.log(a+b+c+d); 33 })