Javascript Array.sort()在下一个操作开始之前未完成

时间:2017-11-05 14:54:55

标签: javascript node.js electron

所以我需要按字母顺序对字符串数组进行排序,然后将其打印在文件中。排序很有效,但有时,大多数情况下,我输出的文件是空的,但是当我在写入之前放置一个断点时,它总是满的。有没有办法确保在一个操作结束后执行操作。这是我做了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';
    }
 }

0 个答案:

没有答案