Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何等待变量不为null_Jquery - Fatal编程技术网

Jquery 如何等待变量不为null

Jquery 如何等待变量不为null,jquery,Jquery,当我这样写的时候,它仍然警告cLanguage为null。我想等到cLanguage不为null,然后运行下面的代码 $(function () { let check = function() { setTimeout(function () { if (cLANGUAGE == null) check(); }, 500); }; if (cLANGUAGE == null) check(); alert(cLANGUAGE); $(

当我这样写的时候,它仍然警告cLanguage为null。我想等到cLanguage不为null,然后运行下面的代码

$(function () {
let check = function() {
    setTimeout(function () {
        if (cLANGUAGE == null)
            check();
    }, 500);
};
if (cLANGUAGE == null) check();
alert(cLANGUAGE);

$('#details--action-share').on('click', function () {
    Action.details.share.before();
});
});

如何执行此操作?

如果
==null
的计算结果为
false
,则将依赖于它的所有代码放在
else
块中:

$('#details--action-share').on('click', function () {
    Action.details.share.before();
});). 

您可以像这样使用
true/false
布尔值

let check = function() {
  setTimeout(function () {
    if (cLANGUAGE === null)
      check();
    else {
      alert(cLANGUGAGE);
    }
  }, 500);
};
check();

“下面的代码”表示“$”(“#详细信息--操作共享”).on('click',function(){action.details.share.before();});顺便问一下,是否要检查?这可能会有所帮助:您能否澄清:您只想在事件处理程序不为null时添加它?或者您只希望Action.details.share.before()在不为null时运行?或者您希望能够单击“#详细信息操作共享”,然后在不再为null时运行.before()?为什么?超时不是一个时间间隔,它不需要被终止-一旦回调运行,超时完成,它将不再运行。因为它是正确的,但它是一个不整洁的过程。我个人说<代码>如果(Culange==NULL){SETTIMEOUT(检查,500);} { BLAH…< /代码>我乍一看更明显,但是无论你是对的:)@ FrimoMnM链式异步调用(如递归<代码> SETTIMEOUT> <代码> S)不会导致溢出-只有同步递归调用有这个问题。
$(function () {
   var Checked = false; // set checked here to false
   let check = function() {
    setTimeout(function () {
        if (cLANGUAGE == null){
            check();
        }else{
            Checked = true; // change it here to true
        }
    }, 500);
  };
  if (cLANGUAGE == null) check();
  alert(cLANGUAGE);

  $('#details--action-share').on('click', function () {
     if(Checked === true){ // or just if(checked) to check if its true
        Action.details.share.before();
     }
  });
});