我正在尝试找到一种方法来延迟我进行服务调用后发生的所有代码。这种延迟的原因是我的服务返回以下函数的代码,我传递给以下函数的结果是未定义的。
我尝试将setTimeout()附加到服务调用后直接调用的函数,但是它只是跳过我设置超时的函数并跳转到下一个函数...我的web方法我是打电话不是那么大,也没有做任何过于密集的事情
public bool GetSpreadsheetStatusForAdmin(string cacId)
{
SpreadSheetStatus result = new SpreadSheetStatus();
List<Data.Spreadsheet> spreadsheets = SpreadsheetManager.GetUserSpreadsheets(GetCurrent.Identity);
if (spreadsheets.Count != 0)
{
foreach (Data.Spreadsheet spreadsheet in spreadsheets)
{
if (spreadsheet.Status == SpreadsheetStatus.Pending)
{
return true;
}
}
}
return false;
}
我找到了延迟()并认为可能有效,但我没有jquery 1.4并且暂时无法使用它。
有什么可以帮助..?
答案 0 :(得分:3)
将此功能称为服务呼叫的回叫。你怎么称呼你的服务?
答案 1 :(得分:0)
这里有一些代码..
GetCheckedOutFieldingsForUser是我在帖子中提到的服务调用。下面的两个EditUser函数是我想要延迟的函数..如果我把延迟放在setTimeout('$popup.load("Forms/EditUserForm.htm #EditUserForm", null, function() { EditUserLoaded(cacId, onSaveCallback); });', 1000);
上它会跳到EditUserLoaded,它没有给出正确的结果
function EditUser(id, onSaveCallback)
{
$("#EditUserPopup").remove();
var $popup = $("<div id='EditUserPopup'></div>");
$("body").append($popup);
$popup.load("Forms/EditUserForm.htm #EditUserForm", null, function() { EditUserLoaded(cacId, onSaveCallback); });
}
function EditUserLoaded(id, onSaveCallback)
{ $(“#EditUserCancelButton”)。click(function(){ShotdownEditUserForm()});
alert(isCheckedOut + "EditUserLoaded");
CallMfttService("ServiceLayer/UserManager.asmx/GetUser", "{id:'" + id + "'}", function(result)
{
if (!userIsAdmin)
{
$("#EditUserForm input").attr("disabled", "disabled");
$("#EditUserForm select").attr("disabled", "disabled");
$('#EditUserFormHeader').text("View User");
$("#EditUserCancelButton").text("Close");
$("#EditUserSaveButton").hide();
}
else
{
if (isCheckedOut == "True")
{
$("#EditUserOrganization").attr("disabled", "disabled");
}
$("#EditUserSaveButton").click(function() { SaveUser(id, onSaveCallback); }).removeAttr("disabled");
}
答案 2 :(得分:0)
嗯..我无法得到延迟的功能,我无法使用onCallback来调用我想要延迟的功能。所以当我加载页面时,我最终设置了我想要的值。我正在设置行的值而不是......这不是我想要做的,但它确实有效。我的页面确实加载了一小段时间......
答案 3 :(得分:0)
重新读完我的原帖后,我觉得它看起来很混乱...... 我最终做的是;创建第二个方法getUserRecords得到一个'flag',我从我的第一个getUser方法调用getUserRecords并返回一个新对象类型,其中包含新对象中的标志。