jQuery-在 javascript 或 jquery 中的 console.log() 之前写警报命令很重要吗?

jQuery-Do alert command is important to write before console.log() in javascript or jquery?

pfr = "";
      $.get("pfc.html", function (pfc) {

      from(pfc);
     });

     function from(pfc) {
         pfr = pfc;

          }
     ptr = "";
   $.get("pdate.html", function (ptc) {
          to(ptc);
        });
 function to(pc) {
        ptr = pc;

     }
                //alert(pfr);
                console.log(pfr);
                console.log(ptr);

问题是当我删除 alert(pfr) 的注释时,控制台显示两个空字符串,当我取消注释时,我得到了我想要的值。实际上这些也适用于 ajax 调用。这里的问题是我想再打一个 ajax 电话或接电话,但在那种情况下一切都显示空字符串。

我想要来自 3 个 ajax 调用的数据并将它们保存为变量并全局访问它以便在脚本中进一步使用 有什么想法吗?

提前致谢

这是因为您正在进行的 AJAX 调用是异步的,这意味着它不会 运行 与您的 JavaScript 的其余部分按顺序进行,它 运行s 与它同时出现。当您使用警报时,您的程序有时间等待并且这些值最终会被填充,但是当您取消警报时,您将在它们具有值之前打印出 pfr。

要解决此问题,您可以将 ajax 分配给一个变量,如下所示:

 var ajax1 = $.get("pfc.html", function (pfc) {
     from(pfc);
 });
 //the variable ajax1 is referred to as a "Promise"

然后将你的 console.log() 包裹在 $.when() 中。然后像这样

$.when(ajax1).then(function() {
    console.log(pfc);
});

如果您需要拨打多个 AJAX 电话,只需像这样格式化时间:

$.when(ajax1, ajax2, ajax3).then(function() {
    console.log(pfc);
});

假设 ajax1、ajax2 和 ajax3 都是 ajax 个调用。