代码仅在调试器模式下工作,断点位于 Consol.log否则不起作用

code works only in debugger mode with break point at consol.log doesn't work otherwise

本文关键字:Consol log 不起作用 断点 调试器 模式 工作 代码      更新时间:2023-09-26

我有以下代码,它仅在调试器模式下工作,控制台上有一个喙点.log。 数组 pageData 在编译时为空 最终下一个循环不编译。我只得到 10 个对象与 ajax 调用,如果我得到 100 个对象如何停止调试器直到加载数组。这发生在所有浏览器中

//ajax call ,
            function(responses) {
                responses.data.sort(function(a,b){
                    var aa=a.were;
                    var bb=b.were;
                    return bb-aa;
                });           
                $.each(responses.data, function (index, value) {
                       var pageData1={
                      were: value.were,
                      id: value.id,
                      name: value.name,
                      category: value.category,
                      address: value.location.street,
                      city:value.city,
                      talk: value.talki, 
                      link:value.link
                      }
                    pageData.push(pageData1);
                    });
            });
            console.log(pageData);
     $.each(pageData, function(key,value){
         table=table+"<tr><td><a href="+pageData[key].link+">"+pageData[key].name+"</a> </td><td>"+pageData[key].were+" </td><td> "+pageData[key].address+"</td><td> "+pageData[key].talk+"</td></tr>";
         });
    $("#tabledata").show();
    $("#messages").append(table);

编辑: function(responses) { responses.data.sort(function(a, b) { var aa = a.were; var bb = b.were; return bb - aa; }); $.each(responses.data, function(index, value) { var pageData1 = { were: value.were, id: value.id, name: value.name, category: value.category, address: value.location.street, city: value.city, talk: value.talki, link: value.link }; pageData.push(pageData1); }); console.log(pageData); $.each(pageData, function(key, value) { table += "<tr>" + "<td><a href="+pageData[key].link+">"+pageData[key].name+"</a> </td>" + "<td>"+pageData[key].were+" </td>" + "<td> "+pageData[key].address+"</td>" + "<td> "+pageData[key].talk+"</td>" + "</tr>"; }); $("#tabledata").show(); $("#messages").append(table); });

只有在 ajax 完成时才会调用您的function(responses)

Javascript 不会等待它完成并将运行控制台.log在数据返回之前,您在运行时什么都没有。

在调试模式下,您可以在控制台上停止它.log(在它运行之前)给异步 ajax 调用时间来完成和填充 pageData 变量。

依赖于此数据的所有代码都必须位于 $.each 函数之后,以便在数据返回时将其全部调用在一起。