今天用到了二次回调,即在回调函数中再次提交一个回调,事实上也调用成功,所要得效果也达到了
但最后出现一个错
错误: '__pendingCallbacks[...].async' 为空或不是对象
跟下去发现问题出现在
function WebForm_CallbackComplete() {
for (var i = 0; i < __pendingCallbacks.length; i++) {
callbackObject = __pendingCallbacks[i];
if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
WebForm_ExecuteCallback(callbackObject);
if (!__pendingCallbacks[i].async) { '__pendingCallbacks[...].async' 为空或不是对象
__synchronousCallBackIndex = -1;
}
__pendingCallbacks[i] = null;
var callbackFrameID = "__CALLBACKFRAME" + i;
var xmlRequestFrame = document.getElementById(callbackFrameID);
if (xmlRequestFrame) {
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
}
}
}
}
猜想大概是第一次回调使__pendingCallbacks[i] = null;造成
最后使用setTimeout来解决这个问题,第一个回调函数中使用setTimeout来调用一个方法来进行另外的调用