我只想过滤掉给定路径中的目录.但是在异步模式下.
|-database
|- more files...
|-events-list
|- more files...
|-year-summary
|- more files...
|-year-summary.xlsx
前三项是子目录.
#!/usr/bin/env node
const fs = require('fs')
const path = require('path')
const dir = 'C:\\Users\\xxx\\Development\\mbes32-events\\src\\reports'
function testSync() {
let items = fs.readdirSync(dir)
let dirs = items.filter(function (item) {
let temp = fs.statSync(path.resolve(dir, item))
return temp.isDirectory()
})
console.log({ dirs })
}
testSync()
result: { dirs: ['database', 'events-list', 'year-summary'] }
async function testAsync() {
let items = await fs.promises.readdir(dir)
let dirs = items.filter(async function (item) {
let temp = await fs.promises.stat(path.resolve(dir, item))
return temp.isDirectory()
})
console.log({ dirs })
}
testAsync()
result: { dirs: ['database', 'events-list', 'year-summary', 'year-summary.xlsx'] }
snyc功能按预期工作.但是async函数总是返回起始路径中的每一项.
我已经用了几个月了.但是今天我的程序因为这个失败而崩溃了.
提前感谢.:)