Как корректно импортировать функцию, возвращающую промис? Node
Есть функция, возвращающая промис. В файле, где она создана, всё прекрасно работает. Но когда импортируешь в другой файл, там ошибка
TypeError: Cannot read property 'then' of undefined
Вот код функции и пример:
function fileToArray(Object) {
return new Promise((resolve, reject) => {
const rl = readline.createInterface({
input: fs.createReadStream(Object.file),
crlfDelay: Infinity
});
rl.on('line', line => Object.array.push(line));
rl.on('close', () => resolve(Object.array));
rl.on('error', err => reject(err))
});
}
fileToArray({file:"./maleNames.txt",array:[]}).then(lines => console.log(lines));
//^^ работает, выдаёт массив
module.exports = fileToArray; //экспортная строка
а вот запуск в файле, где импортирована
const fileToArray = require('./myLib');
fileToArray({file:"./maleNames.txt",array:[]}).then(lines => console.log(lines));
в консоли вижу ошибку:
fileToArray({file:"./maleNames.txt",array:[]}).then(lines => console.log(lines));
^
TypeError: Cannot read property 'then' of undefined
Ответы (1 шт):
Автор решения: svegger
→ Ссылка
Победил проблему, переписав пару экспорт-импорт иначе:
Экспорт из оригинального файла\\ module.exports.fta = fileToArray;
Импорт в рабочий файл\\ let myLib = require('./myLib'); ...далее myLib.fta()