繁体   English   中英

如何使功能仅在某些功能完成后才执行?

[英]How to make a function execute only after certain function completes?

Event.observe(document, 'dom:loaded', function() {

    new Ajax.Request('/HumblFin/Serv', {
        method:'get',
        onSuccess: function(transport){
            var data = transport.responseText.evalJSON();
            drawChart(data);
        },
        onFailure: function(){ alert('Something went wrong...') }
    });


function drawChart(data)
{

     for (var i = 0; i < data.jobs.length; i++)  { 
         priceData.push([i, data.jobs[i].INCPU]);
         dateData.push(data.jobs[i].Dater);

        }
}

在此之后,仅完成了drawchart(data)方法,我想执行以下代码,但不幸的是,函数HumbleFinance.init数据为空。

请告诉我如何解决这个问题。 我不能将下面的代码放在drawChart(data)函数中

HumbleFinance.init('finance', priceData , dateData);
Event.observe(HumbleFinance.containers.summary, 'flotr:select', function (e) {

    var area = e.memo[0];
    xmin = Math.floor(area.x1);
    xmax = Math.ceil(area.x2);

    var date1 = dateData[xmin];
    var date2 = dateData[xmax];

    $('dateRange').update(dateData[xmin] + ' - ' + dateData[xmax]);

});
});

在获取ajax响应并处理数据结果之前,已经对HumbleFinance.init()调用。 在调用此init之前,需要确保已处理ajax响应。 为此,您只需在drawChart方法调用之后将init调用移至onSuccess回调内。

<script>
Event.observe(document, 'dom:loaded', function() {

    new Ajax.Request('/HumblFin/Serv', {
        method:'get',
        onSuccess: function(transport){
            var data = transport.responseText.evalJSON();
            drawChart(data);

            //Put your HumbleFinance.init call here, 
            //after the priceData and dateData has been generated.
            HumbleFinance.init('finance', priceData , dateData);
        },
        onFailure: function(){ alert('Something went wrong...') }
    });

    Event.observe(HumbleFinance.containers.summary, 'flotr:select', function (e) {

        var area = e.memo[0];
        xmin = Math.floor(area.x1);
        xmax = Math.ceil(area.x2);

        var date1 = dateData[xmin];
        var date2 = dateData[xmax];

        $('dateRange').update(dateData[xmin] + ' - ' + dateData[xmax]);

    });
});

暂无
暂无

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

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