`

JavaScript 学习笔记 十六 实践一 异步编程数据保持同步

阅读更多

var log = function(value){
        var logdiv = document.getElementById("logdiv");
        logdiv.innerHTML=logdiv.innerHTML+value+"<br/>";
    }

    var value;
    var A = function (callback){
        setTimeout(function(){
            if (value > 0){
                value = value + 20;
            }else{
                value  =  20;
            }
            callback();
        },100);
    }
    var B = function(callback){
        log(value);
        callback();
    }

    //保证 A();B(); 调用后value有值

    var queue = function(funcs,scope){
        (function next(){
            if(funcs.length > 0){
                //shift 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
                //apply 应用某一对象的一个方法,用另一个对象替换当前对象。
                funcs.shift().apply(scope || {}, [next].concat(Array.prototype.slice.call(arguments, 0)));
            }
        })();
    }

    queue([A,A,A,A,A,B,A,B]);




学习blog
http://blog.csdn.net/renfufei/article/details/19428719
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics