0

如果我有这样的代码 - 让我们简化它。

someObj.newVal = returnSomVal();

function returnSomVal(){
    return grabproperVal();
}

function grabproperVal(){
    var someVal;
    //some js figuring to get proper value for somVal;
    return someVal
    someObj.newVal = setSomeCookie(someObj.newVal,'cookiename');
}

是否存在发生这种情况的竞争条件:

someObj.newVal = setSomeCookie(someObj.newVal,'cookiename');

在此分配发生之前:

someObj.newVal = returnSomVal(); 

我“有时”错过了 var,我不知道这是否是我的测试方法,或者可能“正在”发生竞争条件。只是试图缩小范围。

4

1 回答 1

0

您需要知道这些函数的行为方式。您所说的行为似乎被解雇了,因为您的一个(或两个)函数是异步的。您将需要在必须首先执行的函数中使用回调。当它完成其异步任务时,您将执行第二个任务。

于 2012-07-22T06:57:00.510 回答