zoukankan      html  css  js  c++  java
  • Javascript异步数据的同步处理方法

    数据处理方法封装

    var DataWatch=(function(){
                var gWatch={},cursor= 0,callback_key = 'callback',gMap={};
                var check=function(cursor,name){
                    var _watcher=gWatch[cursor],itemCount = 0,resArr=[],flag=false;
                    if(!!map){
                        return;
                    }
                    if(name && typeof (_watcher[name]) === undefined){
                        return;
                    }
                    for(var key in _watcher){
                        if(key === callback_key){
                            continue;
                        }
                        if(gMap[key]){
                            _watcher[key]=true;
                            resArr.push(map[key]);
                        }
                        itemCount++;
                    }
                    if(resArr.length === itemCount){
                        _watcher[callback_key] && _watcher[callback_key].apply(this,resArr);
                    }
                    resArr=null;
                };
                return {
                    watch:function(name,callback){
                        //兼容watch单个内容
                        if(typeof(name) === 'string' ){
                            name=[name];
                        }
                        var _watcher={};
                        name.forEach(function(item){
                            _watcher[item]=false;
                        })
                        _watcher[callback_key]=callback;
                        cursor++;
                        gWatch[cursor]=_watcher;
                        check(cursor);
                    },
                    put:function(key,value){
                        gMap[key]=value;
                        for(var cursor in gWatch){
                            check(cursor,key);
                        }
                    }
                }
            })()

    使用方法可以下面这样

    func1.ajaxSucc:DataWatch.put(key1,value1)
    func2.ajaxSucc:DataWatch.put(key2,value2)
    func3.ajaxSucc:DataWatch.put(key3,value3)
    
    DataWatch.watch([key1,key2],function(value1,value2){
    })
    
    DataWatch.watch([key1,key3],function(value1,value3){
    })
  • 相关阅读:
    Python学习-if条件语句
    Python学习-变量
    认识Python
    win7分盘
    mysql环境变量配置
    mysql的下载及配置
    c# excel xls保存
    js 在线引用
    js layer.js
    vue day3 bootstrap 联动下拉
  • 原文地址:https://www.cnblogs.com/GongQi/p/5059890.html
Copyright © 2011-2022 走看看