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

Javascript 如何使用setTimeout等待变量加载,同时接收HTTP请求!,javascript,settimeout,Javascript,Settimeout,我在JavaScript中创建了一个函数,每100毫秒检查一次是否加载了全局变量。 加载变量时,函数将返回 变量,如下所示。在我的代码中,我使用JavaScript中的HTTP服务器, 并且当特定的HTTP请求具有特定的 标题到达我的服务器 function checkVariable() { if ( myvar != null ) { return myVar; } else { window.setTi

我在JavaScript中创建了一个函数,每100毫秒检查一次是否加载了全局变量。 加载变量时,函数将返回 变量,如下所示。在我的代码中,我使用JavaScript中的HTTP服务器, 并且当特定的HTTP请求具有特定的 标题到达我的服务器

function checkVariable()
{
    if ( myvar != null )
    {
            return myVar;
    }
    else
    {
            window.setTimeout("checkVariable();",100);
    }
} 
我在如下代码中使用此函数:

// arithmetis operations... [1]

myVar = checkVariable();

// arithmetic operations that use myVar [2]
myVar是用null启动的。问题是[2]中的算术运算是在myVar得到其值之前完成的。相反,我希望我的代码等到myVar 它的值,然后继续操作

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

有人能帮我解决这个问题吗


提前谢谢你

我可能会将剩余的算术操作作为回调。比如:

function checkVariable()
{
    if ( myvar != null )
    {
            computeVariable(myVar);
    }
    else
    {
            window.setTimeout("checkVariable();",100);
    }
} 
然后:


谢谢你,jpoz!这是个好主意!我试试看!尽管我更喜欢不使用回调的解决方案,因为在计算之后,我希望将整个过程重复多次。也就是说,要再次将myVar设为null,并检查是否加载了其他值,以便执行其他操作,最好避免使用字符串作为方法名,因为这会导致执行一些讨厌的eval()代码。
// arithmetis operations... [1]

myVar = checkVariable();

function computeVariable(myVar) {
  // arithmetic operations that use myVar [2]
}