Javascript 循环时ajax调用的非法Break语句

Javascript 循环时ajax调用的非法Break语句,javascript,jquery,ajax,for-loop,Javascript,Jquery,Ajax,For Loop,我试图在for循环中进行ajax调用,它抛出异常“uncaughtsyntaxerror:invalikebreak语句”。它发生在调用函数getProviderDetails()的最后一行 我也试着让电话同步,但也没用。甚至改变了回归的循环,就像我在其他答案中读到的那样,没有运气 代码如下: function getProviderDetails(origin,destination,outbound,inbound) { $.get("/api/provider.ph

我试图在for循环中进行ajax调用,它抛出异常“uncaughtsyntaxerror:invalikebreak语句”。它发生在调用函数getProviderDetails()的最后一行

我也试着让电话同步,但也没用。甚至改变了回归的循环,就像我在其他答案中读到的那样,没有运气

代码如下:

    function getProviderDetails(origin,destination,outbound,inbound) {
        $.get("/api/provider.php", {
            async: false,
            origin: origin,
            destination: destination,
            outbound: outbound,
            inbound: inbound
            },
        function(data, status) {
            console.log(data);
            var values = data.split(";");
            if (dates.length < 2) {
                break;
            }
            var price = values[0];
            if (price < 1) {
                break;
            }
            var link = values[1];
            printData(origin,destination,outbound,inbound,price,link);
        });
    }

    function printData(origin,destination,outbound,inbound,price,link) {
        var row = "<tr>"+"<td>"+origin+"</td>"+"<td>"+destination+"</td>"+"<td>"+outbound+"</td>"+"<td>"+inbound+"</td>"+"<td>"+price+"</td>"+"<td>"+link+"</td>"+"</tr>";
        $('#prices').append(row);
    }

    function getMonths(origin,destination) {
        $.get("/months.php", {
            async: false,
            from: origin,
            to: destination,
            country: "AR",
            currency: "ARS"
        },
        function(data, status) {
            console.log(data);
            var counter = 0;
            var months = [];
            for (var key in data) {
                counter++;
                if (counter > 2) {
                    break;
                }
                getDates(origin,destination,key);
            }
        });
    }

    function getDates(origin,destination,month) {
        $.get("/api.php", {
            from: origin,
            to: destination,
            month: month,
            country: "AR",
            currency: "ARS"
            },
        function(data, status) {
            console.log(data);
            var counter = 0;
            for (var key in data) {
                counter++;
                var outboundDates = [];
                var inboundDates = [];
                if (counter > 10) {
                    return;
                }
                var dates = key.split(".");
                if (dates.length < 2) {
                    return;
                }
                var outbound = dates[0];
                var inbound = dates[1];
                //outboundDates.push(outbound);
                //inboundDates.push(inbound);
                //iterateDates(origin,destination,outboundDates,inboundDates,0);
                getProviderDetails(origin,destination,outbound,inbound);                    
            }
        });
    }



    getMonths("BUE","MAD");
函数getProviderDetails(起点、终点、出站、入站){ $.get(“/api/provider.php”{ async:false, 来源:来源,, 目的地:目的地, 出境:出境,, 入站:入站 }, 功能(数据、状态){ 控制台日志(数据); var值=data.split(“;”); 如果(日期长度<2){ 打破 } var价格=价值[0]; 如果(价格<1){ 打破 } var link=值[1]; 打印数据(来源、目的地、出站、入站、价格、链接); }); } 函数打印数据(来源、目的地、出站、入站、价格、链接){ var row=“”+”+“原产地+”+“目的地+”+“出站+”+“入站+”+“价格+”+“链接+”+”; $(“#价格”)。追加(行); } 函数getMonths(起点、终点){ $.get(“/months.php”{ async:false, 来源:来源:, 目的地:, 国家:“AR”, 货币:“阿根廷卢比” }, 功能(数据、状态){ 控制台日志(数据); var计数器=0; var月数=[]; for(var输入数据){ 计数器++; 如果(计数器>2){ 打破 } 获取日期(起点、目的地、关键字); } }); } 函数getDates(起点、终点、月份){ $.get(“/api.php”{ 来源:来源:, 目的地:, 月:月,, 国家:“AR”, 货币:“阿根廷卢比” }, 功能(数据、状态){ 控制台日志(数据); var计数器=0; for(var输入数据){ 计数器++; var outboundDates=[]; var inboundDates=[]; 如果(计数器>10){ 返回; } var日期=关键分割(“.”); 如果(日期长度<2){ 返回; } var outbound=日期[0]; var inbound=日期[1]; //outboundDates.推送(出站); //inboundDates.推送(入站); //迭代日期(起点、终点、边界外日期、边界内日期、0); getProviderDetails(来源地、目的地、出站、入站); } }); } getMonths(“BUE”、“MAD”);
如果您只是想“中断”函数,请使用
return
而不是
break
break
关键字用于控制语句(除了
If
),而不是函数。正如Rich指出的,
return
是如何“中断”函数的。在调用getProviderDetail时,在最后一行抛出异常,因此它永远不会发出break语句。这是另外一回事。你试过运行更新的代码吗?因为你不应该再犯错误了。打破它的是
break
。请不要编辑您的问题以将代码更改为“修复”,这会使问题无效。如果您只是想“打破”函数,请使用
return
而不是
break
break
关键字用于控制语句(除了
If
),不是功能。正如Rich指出的,
return
是如何“中断”函数的。在调用getProviderDetail时,在最后一行抛出异常,因此它永远不会发出break语句。这是另外一回事。你试过运行更新的代码吗?因为你不应该再犯错误了。是
break
破坏了它。请不要编辑您的问题以将代码更改为“修复”,这会使问题无效。