它还执行我的else语句

时间:2014-02-04 14:30:22

标签: javascript if-statement

我的if语句为true但它也执行我的else语句

if ((request.readyState === 4) && (request.status === 200)) {
    var i = JSON.parse([request.responseText]);
    console.log(i);
} 
else {
    alert("no file");
}

2 个答案:

答案 0 :(得分:8)

也许您希望此代码段只执行一次,但readyStateChange事件会多次触发。试试这个:

if (request.readyState===4) {
    if (request.status===200) {
        var i = JSON.parse([request.responseText]);
        console.log(i);
    } else {
         alert("no file");
    }
}

答案 1 :(得分:1)

该语句多次执行,其中一些进入“if”部分,另一些进入“else”部分。这是因为每次请求状态更改时都会触发。

我们需要整个代码才能看到解决问题的方法(不仅仅是“if”片段)。