Всем привет, есть файл с 600к+ наименований в каждой строке.
Я выполняю функцию eachLine из 'line-reader'.
С каждым новой строки я пушу в пустой массив. Но Промис не дожидается заполнения и отправляет пустой массив при вызове функции.
Подскажите, что нужно сделать?
var allStrings = []; //массив который должен заполниться
export const readLineFile = (path) => {
if(path === undefined){
console.log("ERROR: readLineFile(), no valid PATH or null! Path: "+path);
return new Promise((_, reject)=>{reject("error")})
}
return new Promise((resolve, reject)=>{
try {
lineReader.eachLine(path, (line, last)=>{
console.log(line);
allStrings.push(line); // заполнение массива
});
resolve(allStrings);
} catch (error) {
console.log(`ERROR: readLineFile(). Message: ${error.message}`);
reject("error");
}
});
}
Дальше получаю результат:
app.get("/get", (req, resp)=>{
try {
if(req.query.type === "searchReq"){
readLineFile(path.resolve(__dirname, "searchRequest.txt"))
.then(res=>{
resp.send(JSON.stringify(res));
}).catch(e=>resp.send(e));
}
else resp.send("-");
} catch (error) {
console.log("\r\n Error: "+error.message);
resp.send("bad");
}
})