我需要确保仅在执行getValue()
后调用SetValueForVariable()
。我无法修改BindValue()
或SetValueForVariable()
。
我试过了$.when(BindValue()).then(getValue());
。 (因为我不能改变现有的流程)
它有效,但有时会显示先前设定的值。
我需要在$(document).ready()
上调用getValue。如何确保仅在执行getValue()
后调用SetValueForVariable()
。
//This function is inturn making call to SetValueForVariable() which is written in another file
//Cannot Change this
function BindValue() {
SetValueForVariable()
}
function getValue()
{
$.ajax({
url: getRoutePath("GetPath/GetPath1"),
type: "GET",
async: true,
success: function (data) {
debugger;
data = JSON.parse(data)
$('#txtBox').text(data.Count);
});
}
//Written in another file
//Cannot change this function
function SetValueForVariable() {
//this fucntion is making server call the server method sets value of a Session Variable
$.ajax({
url: getRoutePath("SetPath/SetPath1"),
type: "GET",
async: true,
....
});
}
答案 0 :(得分:3)
您可以在确保调用BindValue
后重新定义BindValue
,在新定义中调用原始getValue
。
伪码
var originalBindValue = BindValue;
BindValue = function() {
if getValue has been called
originalBindValue();
else
call getValue and then originalBindValue() in getValue success / failure callback
}
我认为这可以解决您的无法修改BindValue限制 - 您实际上并不需要访问BindValue代码。