所以我需要按字母顺序对字符串数组进行排序,然后将其打印在文件中。排序很有效,但有时,大多数情况下,我输出的文件是空的,但是当我在写入之前放置一个断点时,它总是满的。有没有办法确保在一个操作结束后执行操作。这是我做了4/5次修复的修复。
var noms=function(){
var sys = require('util');
var exec = require('child_process').exec;
var fs = require('fs'),
lineReader = require('readline'),
names=[];
var reader = lineReader.createInterface({
input: fs.createReadStream('text_files/prenoms.txt'),
output: process.stdout,
console: false
});
reader.on('line', function(line) {
if(getVowels(line)%2==0){
names.push(line);
}
});
setTimeout(()=>{
names=names.sort(function (a, b) {
if (a < b) return -1;
else if (a > b) return 1;
return 0;
});
})
setTimeout(()=>{
names=names.sort(function (a, b) {
if (a < b) return -1;
else if (a > b) return 1;
return 0;
});
var file = fs.createWriteStream('text_files/sortie.txt');
names.forEach(function(line){
file.write(line+",\n");
});
file.end();
exec(getCommandLine() + ' ' + 'text_files/sortie.txt');
},0)
}
function getVowels(line) {
var m = line.match(/[aeiouy]/gi);
return m === null ? 0 : m.length;
}
function getCommandLine() {
switch (process.platform) {
case 'darwin' : return 'open';
case 'win32' : return 'start';
case 'win64' : return 'start';
default : return 'xdg-open';
}
}