isDir返回一个承诺,这始终是一个真实的价值。您需要将条件放入
then回调中才能访问布尔值:
function isDir(path) { return Q.nfcall(fs.stat, __dirname + path) .then(function (stats) { return stats.isDirectory() });}function filemanager(path) { return isDir(path).then(function(isDir) { if (isDir) { return readdir(__dirname + path) .then(function (files) { return files.map(function (file) { return ...; }); }) .then(Q.all); } else { return readFile(__dirname + path, 'utf-8') .then(function (content) { return ...; }); } });}


