简单的JS同步调用函数实现-初探

最近自己试验性的写了一个可以实现同步调用的JS函数。

使用的递归的原理。

var syncExe = function(){
	var fLen = arguments.length;

	var exe = function(funcs,count,sum,retval){
		if(!!retval){
			if(!('return' in exe)){
				exe['return'] = [];
			}
			exe['return'].push(retval);
		}
        if(count == sum){
            return;
        }else{
            funcs[count](function(str){
                count++;
                exe(funcs,count,sum,str);
            });
        }
	}
	exe(arguments,0,fLen);
	return exe['return'];
};


使用


var f1 = function(cb){
    for(var i =0;i<100;i++){
            console.log('f1_'+i);
    }
    cb('f111');

};
var f2 = function(cb){
    for(var i =0;i<100;i++){
            console.log('f2_'+i);
    }
    cb('f222');

};
var f3 = function(cb){
    for(var i =0;i<100;i++){
            console.log('f3_'+i);
    }
    cb('f333');

};
var ret = syncExe(f1,f2,f3);
//ret = ['f111','f222','f333']

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.