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