繁体   English   中英

Java同步请求到icCube

[英]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();
});

如果您有jquery,则可以whendone when使用we。 因此,仅在when将那些executeRequest放入内部when然后将结果组合在一起即可done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM