function apply(){ var args = qMap(arguments); var func = args.shift(); if(args.length===0){ return cast(func()); }else if(args.length===1){ return cast(args[0]).then(func); } return all(args).then(function(results){ return func.apply(null,results); }); }
return map(array,function(value){ var cvalue = cast(value); if(hasfunc){ cvalue = cvalue.then(func); } return cvalue.then(function(bool){ if(!bool){ throw code; } return; }); }).then(function(){
all(qMap(array,function(value){ var cvalue = cast(value); if(hasfunc){ cvalue = cvalue.then(func); } return cvalue.then(function(pValue){ if(pValue){ yes(true); }else{ return false; } }); })).then(function(){
it('should work async failure',function(){ return iter(cast([async(100,1),reject(2),async(40,3)])).should.be.rejected; });
it('should work async stuff',function(){ return iter(cast([async(100,1),async(5,2),async(40,3)])).should.become([1,2,3]); });
it('should work with some mixed stuff',function(){ return iter(cast([resolve(1),2,resolve(3)])).should.become([1,2,3]); });
it('should work with some promises',function(){ return iter(cast([resolve(1),resolve(2),resolve(3)])).should.become([1,2,3]); });
return all(qMap(arr,function(a,i){ return cast(a).then(function(b){ return func(b,i); }); }));