| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:一段代码,找不到错误原因,求帮忙
只看楼主 加入收藏
vbjava
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2015-1-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
一段代码,找不到错误原因,求帮忙
程序代码:

var timeCirculate;
var strCirculateMSG = "";
var blnCirculate = false;

function Fun(array,fun1,fun2){

    var i=0,len = array.length; //这里要注意在执行过程中数组最好是不变的
    
    var arr;// 用于判断是否中断递归操作

    timeCirculate = setTimeout(function(){


        arr = fun1( array[i] , i++ ); //循环体要做的操作
        blnCirculate = arr[0];
        strCirculateMSG = arr[1];

        //alert(blnCirculate);
        //alert(strCirculateMSG);


        // 正常 循环体内
        if(blnCirculate){
            if( i < len ){
                
                timeCirculate = setTimeout(arguments.callee(array,fun1,fun2),0);

            }else{
                
                fun2(); //循环结束之后要做的操作
            }
        
        // 异常,退出循环
        }else{

            fun2(); //循环结束之后要做的操作
        }
    },0);
}

function a(value,i){

    if(value == 3){
        return [false,"错啦"];
    }
    return [true,""];
}
function b(){
    
    clearTimeout(timeCirculate); // 清除 setTimeout
}

var arr=new Array(1,2,3);
Fun(arr,a,b);

alert(blnCirculate);
alert(strCirculateMSG);


如果在 Fun方法内 alert 2个变量,就能得到需要的数据,可如果在 Fun外却总是初始定义的值,为什么 Fun 方法内无法修改 外部定义的 blnCirculate    strCirculateMSG 2个 变量的值哪?要如何修改
2015-01-11 12:20
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:20 
你具体想做什么呢?

我不是砖家,要努力成为砖家。
2015-01-16 13:42
vbjava
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2015-1-11
收藏
得分:0 
这个就是模仿for循环,如果循环次数太多,页面会出现假死现象,用这个就是 把每次循环做的事情,利用 setTimeout 的方法交给系统,可以避免假死现象
2015-01-16 18:29
快速回复:一段代码,找不到错误原因,求帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021682 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved