直接 Web 远程处理异步问题
direct web remoting asynchronous issue
我正在使用直接Web远程处理库在我的应用程序中执行一些ajax调用。 我遇到了一个问题,我认为归结为服务呼叫的延迟响应。 下面是我认为有问题的部分代码。 问题出在getDefaultReviewerTypeCode中,直到其他"stuff"进程之后,才在回调中设置返回变量。 有没有办法告诉DWR在继续处理java脚本之前等待响应?
function makeProtocolReviewerTypesDropDown(reviewerTypes, reviewerIndex) {
var defaultReviewerType = getDefaultReviewerTypeCode();
...
var option = document.createElement('option');
option.setAttribute("value", "");
if (defaultReviewerType == '') {
option.setAttribute("selected", "selected");
}
...
for (var i = 0; i < reviewerTypes.length; i += 2) {
var reviewerType = reviewerTypes[i].replace(/^'t*/, '');
option = document.createElement('option');
option.setAttribute("value", reviewerType);
if (defaultReviewerType == reviewerType) {
option.setAttribute("selected", "selected");
}
option.text = reviewerTypes[i+1];
addSelectOption(selectElement, option);
}
return selectElement;
}
function getDefaultReviewerTypeCode() {
var defaultReviewTyper;
var dwrReply = {
callback:function(data) {
if ( data != null ) {
defaultReviewTyper = data;
} else {
defaultReviewTyper = '';
}
}
};
IacucProtocolActionAjaxService.getDefaultCommitteeReviewTypeCode(dwrReply);
return defaultReviewTyper;
}
最好的方法是将 DWR 调用之后的所有代码封装到一个单独的方法中,并从 DWR 回调调用该方法。这样,依赖于 DWR 结果的代码可以保证仅在 DWR 返回后调用。
相关文章:
- 如何处理异步获取的数据
- 直接 Web 远程处理异步问题
- ExtJs 处理异步调用
- 处理异步函数
- 使用Canvas和ForEach处理异步调用
- window.set同步处理异步调用的超时
- 在应用程序框架中处理异步 Javascript 代码的最佳实践
- Redux - 智能组件 - 在挂载组件之前如何处理异步操作
- 节点.js处理异步
- 余烬集成测试错误.处理异步副作用
- 如何在JS socket.io聊天中处理异步用户数据
- 如何在JavaScript中处理异步函数结果
- 如何在 node.js 中处理异步应用程序中的模块
- 处理异步加载的函数中的无限循环
- 如何处理异步函数和集合
- 使用Ramda处理异步编程
- 在服务器端的节点中处理异步响应
- JQueryUI自动完成如何处理异步结果
- 如何使用JS承诺处理异步调用
- 在Node.js中处理异步循环的最佳模式