我正在开发一个asp.net Web窗体应用程序。在客户端,我有一个javascript for循环,它在后面的代码中调用PageMethod。如果PageMethod成功执行,则必须执行其他javascript功能,例如更新标签的值。问题是当for
循环运行并调用PageMethod时,它永远不会进入onSuccess
方法。循环将继续并结束。我想知道如何在每次PageMethod调用之后调用onSuccess
方法,然后循环才能继续进行下一次迭代。以下是我的代码段。
for (var i = 0; i < data.length; i++) {
var dataItem = datata[i];
var name = dataItem.name;
if (name !== null && name !== '') {
PageMethods.ProcessName(name, onSuccess);
function onSuccess(result) {
if (result == "") {
// code to populate a label with the value of name
// in each iteration
}
}
}
}
答案 0 :(得分:0)
您可以尝试在onSuccess
调用之前移动ProcessName()
函数。您甚至可以将其移动到这样的局部变量中:
var onSuccess = function(result) {
if (result == "") {
//code to populate a label
}
}
PageMethods.ProcessName(name, onSuccess);
或者您可以像这样将匿名函数直接传递给PageMethods.ProcessName()
:
PageMethods.ProcessName(name, function(result) {
if (result == "") {
//code to populate a label
}
});