這是一個奇怪的;這個函數在Qt中每1秒由一個定時器調用。查看if
聲明;首先它解析一些JSON數據,然後記錄它正在解析。正如我所料,console.log
只有當fileshow.txt
改變它的內容時纔會發生。無論其 - ,說var parsed = JSON.parse(t)
行報告分析錯誤每隔1秒,即使在沒有其他(包括日誌)那一秒期間發生:如果語句導致分析,但沒有其他分支內部
function get() {
var xhr = new XMLHttpRequest;
xhr.open("GET", "/fileshow.txt");
xhr.onreadystatechange = function() {
var t = xhr.responseText;
if (t != tt.lastData) {
var parsed = JSON.parse(t);
console.log("parsing");
viewer.newImages(parsed.files);
thetime.shouldRepeat = parsed.repeat;
thetime.fps = parsed.fps;
tt.lastData = t;
thetime.running = true;
}
}
xhr.send()
}
即使我得到一個語法錯誤(這是一個不同的主題 - 儘管出現錯誤,數據實際上是正確解析的,因爲它通過上述公式獲得路由並且程序的其他部分按預期獲取數據),我甚至不會看到該源代碼的錯誤除非if
分支實際運行!它如何報告解析錯誤,該錯誤只能在該if
分支甚至沒有運行的if
分支中發生?!
在任何地方都沒有其他解析,並且報告此JSON.parse調用的特定行號的錯誤。
_「這是一個不同的主題 - 儘管出現錯誤,數據實際上是正確解析」_你怎麼知道這一點?這是從方法外執行'console.log'調用嗎? –
@ Qantas94Heavy我正在解析上述代碼中提到的數據,數據正確地通過我的程序進行路由。我的問題不是關於錯誤本身的原因,而是當'if'分支中沒有其他事情發生時,在上述代碼中如何發生解析?我的JSON也通過了一些在線驗證器。 – johnbakers