iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

fs是node.js拿來針對檔案的操作的模組,內涵一系列的方法可以滿足對檔案操作的需求

再等等的例子上就可以帶到同步與非同步。

過往在寫PHP的時候他是同步的語言,什麼是同步呢?

就是程式會由上往下,一行一行執行,如果遇到一個需求是需要讀取一陣子的,他就會卡在那邊一陣子,直到完成了,才會繼續再往下走下去。

至於非同步我目前還沒了解的很深刻,在往後看有沒有機會再來用我理解的方式好好敘述一篇。

我們來簡單測試一下非同步跟同步的呈現吧~

創一個檔案名為

wow.txt

在裡頭寫上

我是wow.txt檔案

接著回到我的js檔案裡面寫

//匯入fs模組
const fs = require('fs');
//呼叫readFile()方法讀取檔案
fs.readFile('wow.txt','utf8',function(err,wowData){
   	console.log(err);//沒有錯誤顯示null
   	console.log('-----');//純粹分隔線
   	console.log(wowData);
});
console.log('非同步讀取檔案')
//err代表列印失敗後的結果,wowData代表列印成功後的結果

如果以同步語言的方式下去思考的話,他會先卡在fs.readFile
結束之後才去往下。

但在node.js裡面並不是這樣
其輸出結果

可以發現程式是繼續往下跑,取最下方的console,執行完當前需求之後,會再去處理非同步的部分

當然也fs也可以去選擇同步任務的方法

//同步讀取檔案
const fs = require('fs');
const str = fs.readFileSync('wow.txt','utf8');
console.log(str);
console.log('同步讀取檔案');

其輸出結果

從這邊就可以感受到,今天如果是非同步執行的狀況下,很多瀏覽體驗優秀很多,如果有一個任務是需要等10秒才能繼續下去,那消費者感受就會比較糟糕,透過非同步的方式
可以達到良好的體驗。


上一篇
第二天 Buffer 是什麼?
下一篇
第四天 安裝Express框架
系列文
Node.js隨手札記 想到什麼就說什麼的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言