我有 2 个文件,包含名称。我想从这两个文件中随机生成名称组合。但是当我调用我的函数时,它 console.log() 的名称正确,但未定义存储在couple变量中。
我当前的代码如下所示:
function getRandomLine(filename) {
fs.readFile(filename, function (err, data) {
if (err) throw err;
data += "";
var lines = data.split("\n");
line = lines[Math.floor(Math.random() * lines.length)];
console.log(line);
return line;
});
}
function generateRandomCouple(f1, f2) {
male = getRandomLine(f1);
female = getRandomLine(f2);
return male + " & " + female;
}
couple = generateRandomCouple("./maleNames.txt", "./femaleNames.txt");
console.log(couple);
我得到的输出是:
undefined & undefined
Sam
Penny
另外,我仍然很困惑什么时候使用 something.then().catch() vs async/await vs 这种回调风格的代码。有什么好的方法来考虑什么时候使用什么?
编辑:如果我使用readFileSync,我会在控制台上得到以下信息: undefined & undefined
慕容森
PIPIONE
相关分类