如何使用setTimeout等待变量加载,同时接收HTTP请求!

Tha*_*sas 5 javascript settimeout

如果加载了全局变量,我已经在JavaScript函数中检查每100毫秒.当加载变量时,函数将返回变量的值,如下所示.在我的代码中,我在JavaScript中使用HTTP服务器,当具有特定标头的特定HTTP请求到达我的服务器时,将加载该变量.

function checkVariable()
{
    if ( myvar != null )
    {
            return myVar;
    }
    else
    {
            window.setTimeout("checkVariable();",100);
    }
} 
Run Code Online (Sandbox Code Playgroud)

我在一段代码中使用此函数,如下所示:

// arithmetis operations... [1]

myVar = checkVariable();

// arithmetic operations that use myVar [2]
Run Code Online (Sandbox Code Playgroud)

myVar以null启动.问题是[2]中的算术运算是在myVar得到它的值之前完成的.相反,我希望我的代码等到myVar得到它的值,然后继续操作.

在尝试setTimeout函数之前,我尝试使用while循环使代码等待,但问题是HTTP服务器由于连续执行while循环而无法接收任何HTTP请求!

有人可以帮我解决这个问题吗?

先感谢您!

jpo*_*poz 11

我可能会将剩余的算术运算作为回调.就像是:

function checkVariable()
{
    if ( myvar != null )
    {
            computeVariable(myVar);
    }
    else
    {
            window.setTimeout("checkVariable();",100);
    }
} 
Run Code Online (Sandbox Code Playgroud)

然后:

// arithmetis operations... [1]

myVar = checkVariable();

function computeVariable(myVar) {
  // arithmetic operations that use myVar [2]
}
Run Code Online (Sandbox Code Playgroud)