Написал js тест:
import fsp from 'fs-promise';
describe("Video", () => {
const path = __dirname + '/../assets/video/';
let files;
let arr = [];
it("Получить список видеофайлов", async () => {
files = await fsp.readdir(path);
});
it("Составить массив из списка файлов с размерами", async () => {
for(let file of files) {
let stat = await fsp.stat(path + file);
let filesize = parseFloat(stat.size / 1024 / 1024).toFixed(1);
arr.push([{
filename : file.split('.')[0],
filesize : filesize,
isDir : stat.isDirectory(),
command : stat.isFile() ? `get:${file}` : `to:${file}`
}]);
}
});
it("Вывести массив с данными о файле", () => {
console.log(arr);
})
});
Тест прекрасно выполняется. Теперь перехожу к реальному сервису:
import fsp from 'fs-promise';
import bot from '../bot';
const path = __dirname + '/../../assets/video/';
export default async () => {
let markup = [];
let files = await fsp.readdir(path);
for(let file of files) {
let stat = await fsp.stat(path + file);
let filesize = parseFloat(stat.size / 1024 / 1024).toFixed(1);
console.log({
text : file.split('.')[0],
filesize : filesize,
callback_data : stat.isFile() ? `get:${file}` : `to:${file}`
});
/*markup.push([{
text : file.split('.')[0],
filesize : filesize,
callback_data : stat.isFile() ? `get:${file}` : `to:${file}`
}]);*/
}
return bot.inlineKeyboard(markup);
}
Все прекрасно работает и выводит в консоль что нужно. Но если раскоментировать push, то возникает проблема:
(node:33763) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): [object Object]
(node:33763) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.