想請問一下大大們這種函數簽章要如何實現?
fs.readdir(path[, options], callback)
function LS(userDir, path='/' ,cb) {
fs.readdir(userDir+path, (err, files)=> {
cb(files);
})
}
我想要寫一個函數來包裝readdir, 但path那個參數是option的,如果沒傳就默認'/'
但cb那個簽章是必要的。但我沒辦法這樣用:
LS(userDir, ()=> {
// call back
);
// 或
LS(userDir, '/temp', ()=> {
// call back
});
不然你可以考慮這樣寫
const fs = require('fs');
const LS = ({ userDir, path, cb }) => {
const _userDir = userDir;
const _path = path || '/';
const _cb = cb;
fs.readdir(`${_userDir}${_path}`, (err, files) => {
if (err) {
throw new Error(err);
}
_cb(files);
});
};
const cb = (input) => {
console.log(input);
};
LS({ userDir: '', cb });