我需要确保仅在执行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,
....
});
}
最佳答案
您可以重新定义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代码。