Javascript阻止呼叫

时间:2011-08-04 07:11:40

标签: javascript

如何在javascript中进行阻止调用?

在下面的代码中,通过在不同的js文件中调用chached.get方法,此代码片段最后一行的警报在if块完成后返回某些值之前的代码中命中。

var getCachedData = function(_key){

    var retStr;
    if (_key != '' || _key != null) {
        cached.get(_key, function(data){
                   if(data){ 
                       alert('data = ' +data.value);
                       return data.value;
                   }
                   else{  
                        return undefine;              
                   }                    
                 });                  
    }
    alert('completed');
}

2 个答案:

答案 0 :(得分:2)

cached.get方法必须异步执行某些操作。作为参数提供给该方法的函数似乎是一个回调函数,该函数在get方法成功返回后执行。如果您需要运行依赖于cached.get调用结果的代码,则需要将其置于该回调中。

答案 1 :(得分:2)

它取决于库(即在您的情况下定义cached的行为的任何内容)是否可以阻止。您必须提供有关cached的更多信息,或自行了解。

但是,一般来说,您希望尽可能避免在Javascript中阻塞,因为Javascript在每个主要浏览器的UI线程中运行(据我所知)。

而不是期望能够阻止,重写代码,以便在回调函数中使用data

相关问题