[英]Javascript synchronous request to icCube
在显示它们之前,我需要合并3个MDX请求的结果,分别为mdx1,mdx2和mdx3。
如何在调用display方法之前等待3个过程完成?
是否可以同步调用executeRequest方法?
这是代码结构:
executeRequest(new viz.MdxGviRequest(mdx1), {}, function(gviTable) {
// process result1
});
executeRequest(new viz.MdxGviRequest(mdx2), {}, function(gviTable) {
// process result2
});
executeRequest(new viz.MdxGviRequest(mdx3), {}, function(gviTable) {
// process result3
});
// combine result1, result2 and result3 into result
// display result using Google table chart
由于icCube使用jQuery,因此这里是使用jQuery的when / done功能的可能解决方案。
var res1_done = $.Deferred();
var res2_done = $.Deferred();
var res2_done = $.Deferred();
var res1, res2, res3;
function onAllResultDone() {
// handle here your results (res1/res2/res3)
}
$.when( res1_done, res2_done, res3_done ).done(function() {
onAllResultDone();
});
executeRequest(new viz.MdxGviRequest(mdx1), {}, function(gviTable) {
res1 = ...;
res1_done.resolve();
});
executeRequest(new viz.MdxGviRequest(mdx2), {}, function(gviTable) {
res2 = ...;
res2_done.resolve();
});
executeRequest(new viz.MdxGviRequest(mdx3), {}, function(gviTable) {
res3 = ...;
res3_done.resolve();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.