Код: Выделить всё
const randomGIFFunc = async function(dirname) {
const dirPath = 'src/gifs/' + dirname;
fs.readdir(dirPath, (err, files) => {
if (err) {
console.log('Error reading directory: ', err );
return;
}
const randomIndex = Math.floor(Math.random() * files.length);
const randomGIFname = files[randomIndex];
const randomGIFpath = dirPath + '/' + randomGIFname;
console.log('arr in function: ' + [randomGIFpath, randomGIFname]);
return [randomGIFpath, randomGIFname];
})
}
Код: Выделить всё
switch (act) {
case 'hug':
const arr = await randomGIFFunc('hug');
console.log("arr: " + arr); //undefined
const randomGIFpath = await arr[0]; const randomGIFname = await arr[1];
break;
Код: Выделить всё
arr: undefined
There was an error running this command: TypeError: Cannot read properties of undefined (reading '0')
arr in function: src/gifs/hug/01.gif,01.gif
Я могу только догадаться, что по какой -то причине функция фактически происходит позже (оценка журналов терминала), но я понятия не имею, почему код не ждет его, чтобы закончить
Подробнее здесь: https://stackoverflow.com/questions/797 ... s-an-array
Мобильная версия