亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個fs.statSync的問題

一個fs.statSync的問題

FFIVE 2019-04-13 08:36:58
"usestrict";varfs=require('fs');varcolors=require('colors/safe');fs.readdir(process.cwd(),function(err,files){files.forEach(function(item,index,array){fs.statSync(item,function(err,stat){if(stat.isDirectory()){console.log(colors.blue(item+'/'));}elseif(stat.isFile()){console.log(colors.green(item));}});});});這個程序本來是想打印出當前目錄下的文件的,但是如果我把fs.stat換成fs.statSync后,就無法輸出了,這是為啥呢?node的版本是v0.12.7
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

因為statSync是同步的方法啊,結果直接得到了也就是stat=fs.statSync(item)然后判斷stat.isDirectory()
                            
查看完整回答
反對 回復 2019-04-13
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

來看一下nodejs的FileSystem模塊提供了很多種方法,這些方法大致可以分別為兩類:一類是異步+回調的;一類是同步的。其中stat就是屬于前者,statSync就是屬于后者。來看一下使用區別:
1.異步版:fs.stat(path,callback):
path是一個表示路徑的字符串,callback接收兩個參數(err,stats),其中stats就是fs.stats的一個實例;
2.同步版:fs.statSync(path)
只接收一個path變量,fs.statSync(path)其實是一個fs.stats的一個實例;
3.再來看fs.stats有以下方法:
stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isCharacterDevice()
stats.isSymbolicLink()(onlyvalidwithfs.lstat())
stats.isFIFO()
stats.isSocket()
看完這些,你就明白了吧。
                            
查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 553 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號