javascript - 在nodejs的程序里面怎么理解IO呢,如何用一段代碼來說明IO
問題描述
問題解答
回答1:你可能沒把問題描述清楚,IO只是個詞匯而已,像HTML也是一個縮寫詞匯。 你是不是想問: nodejs中的異步IO是怎么回事?
回答2:IO 是 Input/Output 的簡寫,常見的輸入包括控制臺(鍵盤)輸入、文件輸出;常見的輸出包括控制臺(顯示器)輸出、文件輸出——這些都是很早就存在的概念。現(xiàn)在 IO 還包括網(wǎng)絡(luò)IO、設(shè)備IO……只要是輸入輸出就可以稱為 IO。
你給的這段代碼只是 IO 中讀取文件,也就是從文件輸入的一個例子。相對于其它語言或環(huán)境中常見讀文件操作來說,這里比較特殊的一點在于它是異步的,在發(fā)起讀文件請求(fs.readFile)的同時,傳遞了一個回調(diào)((err, data) => {...})作為參數(shù)進去,要求讀取文件完成之后由IO庫調(diào)用這個回調(diào),把文件內(nèi)容(data)作為參數(shù)傳遞給回調(diào)函數(shù),以便回調(diào)函數(shù)對其進行處理。而處理過程,即回調(diào)函數(shù),是在發(fā)起讀文件請求的時候就已經(jīng)定義好的。
我估計你是對異步這個概念不是很清楚,但是如果在這里說,幾句話也說不清楚,建議你去搜一下相關(guān)資料來看看。就搜 “JavaScript 異步”
回答3:fs.readFile是讀文件的操作,相當(dāng)于你說的I,讀取的文件數(shù)據(jù)存儲在data變量里面;fs.writeFile是寫文件的操作(你代碼里面沒有涉及),相當(dāng)于你說O,輸出數(shù)據(jù)到一個外部文件。簡單的說:I是從外部讀入數(shù)據(jù)到程序,O是從程序輸出數(shù)據(jù)到外部文件。(老鐵,扎心了!踩我的務(wù)必說說理由)
回答4:I/O流,即輸入輸出,讀寫文件就是對數(shù)據(jù)輸入輸出
