闭关修行中......
你可能沒把問題描述清楚,IO只是個詞彙而已,像HTML也是一個縮寫詞彙。 你是不是想問: nodejs中的非同步IO是怎麼回事?
IO 是 Input/Output 的簡寫,常見的輸入包括控制台(鍵盤)輸入、檔案輸出;常見的輸出包括控制台(顯示器)輸出、檔案輸出-這些都是很早就存在的概念。現在 IO 也包含網路IO、設備IO…只要是輸入輸出就可以稱為 IO。
你給的這段程式碼只是 IO 中讀取文件,也就是從文件輸入的一個例子。相對於其它語言或環境中常見讀取文件操作來說,這裡比較特殊的一點在於它是異步的,在發起讀取文件請求(fs.readFile)的同时,传递了一个回调((err, data) => {...})作为参数进去,要求读取文件完成之后由IO库调用这个回调,把文件内容(data)作為參數傳遞給回調函數,以便回調函數對其進行處理。而處理過程,也就是回呼函數,就是在發起讀取檔案請求的時候就已經定義好的。
fs.readFile
(err, data) => {...}
data
我估計你是對非同步這個概念不是很清楚,但是如果在這裡說,幾句話也說不清楚,建議你去搜一下相關資料來看看。就搜尋 “JavaScript 非同步”
fs.readFile是讀取檔案的操作,相當於你說的I,读取的文件数据存储在data变量里面;fs.writeFile是写文件的操作(你代码里面没有涉及),相当于你说O,输出数据到一个外部文件。简单的说:I是从外部读入数据到程序,O是從程式輸出資料到外部檔案。 (老鐵,札心了!踩我的務必說說理由)
I
O
I/O流,即輸入輸出,讀寫檔就是對資料輸入輸出
你可能沒把問題描述清楚,IO只是個詞彙而已,像HTML也是一個縮寫詞彙。
你是不是想問: nodejs中的非同步IO是怎麼回事?
IO 是 Input/Output 的簡寫,常見的輸入包括控制台(鍵盤)輸入、檔案輸出;常見的輸出包括控制台(顯示器)輸出、檔案輸出-這些都是很早就存在的概念。現在 IO 也包含網路IO、設備IO…只要是輸入輸出就可以稱為 IO。
你給的這段程式碼只是 IO 中讀取文件,也就是從文件輸入的一個例子。相對於其它語言或環境中常見讀取文件操作來說,這裡比較特殊的一點在於它是異步的,在發起讀取文件請求(
fs.readFile
)的同时,传递了一个回调((err, data) => {...}
)作为参数进去,要求读取文件完成之后由IO库调用这个回调,把文件内容(data
)作為參數傳遞給回調函數,以便回調函數對其進行處理。而處理過程,也就是回呼函數,就是在發起讀取檔案請求的時候就已經定義好的。我估計你是對非同步這個概念不是很清楚,但是如果在這裡說,幾句話也說不清楚,建議你去搜一下相關資料來看看。就搜尋 “JavaScript 非同步”
fs.readFile是讀取檔案的操作,相當於你說的
I
,读取的文件数据存储在data变量里面;fs.writeFile是写文件的操作(你代码里面没有涉及),相当于你说O
,输出数据到一个外部文件。简单的说:I
是从外部读入数据到程序,O
是從程式輸出資料到外部檔案。 (老鐵,札心了!踩我的務必說說理由)I/O流,即輸入輸出,讀寫檔就是對資料輸入輸出