我正在开发一个 asp.net 网络表单应用程序。在客户端,我有一个 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
}
}
}
}
最佳答案
您可以尝试在 ProcessName()
调用之前移动 onSuccess
函数。您甚至可以像这样将其移动到局部变量:
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
}
});
关于javascript - PageMethod 的 onSuccess 函数未达到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996499/