我希望下面的代码只输出 0 或 2,但在 Firefox 24 中它有时会输出 1。这符合任何(未来)标准吗?我认为当超时事件被同步调用阻塞时,Firefox 会切换事件。我无法在 Chrome 30.0.1599.69 m 中重现它(我在打开网站时在控制台中输入了此代码。)
var z=0;
var x = new XMLHttpRequest();
x.onload=function(){
console.log(z);
};
x.open('GET','.',true);//asynchronous call
x.send();
setTimeout(function(){
var i=1e7;
while(i--);//some time to waste while the asynchronous call finishes.
var y = new XMLHttpRequest();
y.open('GET','.',false);//synchronous call
z=1;
y.send();
z=2;
},10);
有人知道演示此问题的较短代码吗?