假設我有包含內容的txt文件 - 1st print
。爲什麼這個文件讀取是異步的?
我有這個文件讀取程序 -
var reader = new XMLHttpRequest() || new ActiveXObject('MSXML2.XMLHTTP');
function loadFile() {
reader.open('get', 'file.txt', true);
reader.onreadystatechange = displayContents;
reader.send(null);
}
function displayContents() {
if(reader.readyState==4) {
if(reader.status === 200 || reader.status == 0) {
console.log(reader.responseText);
}
}
}
loadFile() ;
console.log("2st print");
,當我運行它,我得到異步結果 -
2nd print
1st print
而
後續計劃爲同步的結果 -
function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
console.log(allText);
}
}
}
rawFile.send(null);
}
readTextFile("file.txt");
console.log("2nd print");
結果 -
1st print
2nd print
什麼原因在第一個程序異步?
這裏可能是第三個布爾參數'rawFile.open(「GET」,file,false);' – Jashwant 2014-11-23 09:34:30