我希望从一个函数生成数据,并将其用于另一函数。
到目前为止我已经尝试过:
1.返回对象
2. 将对象插入数组
3. 迭代对象并推送到数组
4. 将变量加载到函数定义中。
功能A:读取目录中的文件
const directoryPath = path.join(__dirname, '../views/mtemp');
function list(param){
fs.readdir(directoryPath, function (err, files) {
if (err) {
console.log(err);
}
files.forEach(function (file) {
param.push(file);
});
});
console.log(param);
}
功能 B:Express-Router
router.get('/', function(req, res, next) {
var param = [];
list(param);
console.log(param);
res.render('task');
});
功能A:解析目录并列出其中的文件。 功能B:Express-router
我想显示目录而不嵌套 Func。 A 进入 Func。
最佳答案
对函数做出 promise ,然后导出和导入它
文件 foo.js
const {promisify} = require('util');
const {readdir} = require('fs');
const readAsync = promisify(readdir);
module.exports = (path) => readAsync(path);
文件 bar.js
const reader = require('./foo');
reader('./').then(e => {
console.log(e);
});
或者在你的文件中
router.get('/', async function(req, res, next) {
const list = await reader('./');
console.log(list);
res.render('task');
});
<小时/>
不要按照另一个答案中的建议使用 fs.readdirSync。
关于javascript - 如何将数据从一个函数导出到另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57462544/