日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Node中同步与异步的方式读取文件

發布時間:2025/3/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node中同步与异步的方式读取文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

Node.js最大的特點就是異步式I/O(或者非阻塞I/O)與事件緊密結合的編程模式。這種模式與傳統的同步式I/O線性的編程思路有很大的不同,因為控制流很大程度上要靠事件和回調函數來組織,一個邏輯要拆分為若干個單元。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

在Node中如何使用異步的方式讀取一個文件,新建readFile.js

var fs = require('fs'); fs.readFile('badao.txt','utf-8',function (err,data) {if(err){console.log(err);}else{console.log(data);} }); console.log('讀取文件結束');

然后在同級目錄下新建文件badao.txt用來作為讀取的內容。

運行如下命令

node readFile.js

運行的結果如下

?

Node也提供了同步讀取文件的API

新建文件readFileSync.js

var fs = require('fs');var data = fs.readFileSync('badao.txt','utf-8');console.log(data);console.log('讀取結束');

然后運行如下命令

node readFileSync.js

運行結果如下

?

兩次運行的結果不同。

同步讀取文件的方式比較好理解,將文件名作為參數傳入,fs.readFileSync函數,堵塞等待讀取完成后將文件的內容作為函數的返回值

賦給data變量。然后控制臺輸出data的值,最后輸出結束。

異步式IO是通過回調函數來實現的。fs.readFile接收了三個參數。第三個是匿名的回調函數。

fs.readFile調用時所作的工作就是將異步式IO請求發送給了操作系統,然后李繼峰返回并執行后面的語句,

執行完以后進入事件循環監聽事件。當fs接收到IO請求完成的事件時,事件循環會主動調用回調函數以完成后續工作。因此會先看到輸出結束,

再看到文件內容。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Node中同步与异步的方式读取文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。