这是一个javascript函数:
function getValue(key) {
var value;
switch(_options.myType){
case "cookie":
value = readFromCookie(key);
break;
case "localStorage":
value = readFromLocalStorage(key);
break;
case "db":
//return value from the server
// how do I wait for the result?
$.ajax({
type: "GET",
url: "123",
data: { .... },
success: function(data){
value = data;
}
});
break;
}
return value;
};
在发送ajax请求的情况下,我需要等到ajax请求完成。我该怎么做?
并不是说我不能在没有计算值的情况下离开函数。这意味着我不能在success:
处理程序中放置一个函数,该函数稍后会返回该值(或者我可能不明白什么?)。所以必须在函数内计算getValue()
。
更新
PS那么如何重构我的代码以便能够在success:
处理程序中使用回调呢?这是代码的第二部分:
MyClass123.prototype.myMethod = function(value) {
//..............
var var1 = this.getValue("key1");
if (var1 == "123") { ... }
else { .... }
//..............
}
};