[英]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.