weixin_33725272 2013-10-22 21:32 采纳率: 0%
浏览 28

jQuery .get奇怪

Here is a magic code:

function() {
        var result='';
        for (var key in TRAINER_STEPS){
            if (TRAINER_STEPS.hasOwnProperty(key)) {
                $.get('steps/trainer.step.'+key+'.html')
                    .done(function(data) {
                        console.log(data); // HERE DATA IS VALID HTML DATA
                        result += '<div '+(key == TRAINER_DEFAULT_STEP ? 'class="hiddenStep"' : 'class="currentStep"')+' data-step="'+key+'">'+data+'</div>
'; // AND HERE NOTHING HAPPEND
                    })
                    .fail(function(jqxhr, settings, exception) {
                        console.log("[el5s] Load step steps/trainer.step."+key+".html failed. Error: "+exception);
                });

            }

        }
        console.log(result); // EMPTY HERE
        return result;
    }

$.get works good, and data is received properly, but my function returns totaly empty result. See my coments. What's wrong with it?

  • 写回答

1条回答 默认 最新

  • weixin_33714884 2013-10-22 22:17
    关注

    The design of your program needs to be re-thought. In general, what you need to do is split the function into three different functions: The part that happens before the AJAX call, the part that happens if the AJAX call is successful, and the the part that happens if the AJAX call is not successful.

    Instead of this pseudocode process:

    function doSomething() {
        // code to do whatever
        var data = getDataFromWebService();
        // code to work with the data
    }
    

    use this one:

    function doSomething() {
        // code to do whatever
    
        $.get('steps/trainer.step.'+key+'.html')
            .done(onSuccess)
            .fail(onFailure);
    }    
    
    function onSuccess() {
        // code to work with the data
    }
    
    function onFailure() {
        // code to respond to a web service that is down whatever
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)