如何在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');
}
答案 0 :(得分:2)
cached.get
方法必须异步执行某些操作。作为参数提供给该方法的函数似乎是一个回调函数,该函数在get
方法成功返回后执行。如果您需要运行依赖于cached.get
调用结果的代码,则需要将其置于该回调中。
答案 1 :(得分:2)
它取决于库(即在您的情况下定义cached
的行为的任何内容)是否可以阻止。您必须提供有关cached
的更多信息,或自行了解。
但是,一般来说,您希望尽可能避免在Javascript中阻塞,因为Javascript在每个主要浏览器的UI线程中运行(据我所知)。
而不是期望能够阻止,重写代码,以便在回调函数中使用data
。