TypeError: members.forEach is not a function при попытке обработки результата guild.members.fetch() Discord Api JS

function kickall(message) при попытке обработки результата функции fetchGuildUsers(message) выдает ошибку TypeError: members.forEach is not a function. По советам вместо .forEach() пытался использовать .each(), результат - аналогичная ошибка. Подскажите, как обработать этот массив?

const Discord = require('discord.js');
const Client = new Discord.Client();

let config = require('./config.json');
let token = config.token; 


Client.on('ready', () => {
  console.log(`Logget in as ${Client.user.tag}!`)
})


async function fetchGuildUsers(message) {
  let Users = await message.guild.members.fetch()
              .then(console.log)
              .catch(console.error);
  return Users;
}
    
function mkick(member) {
  member.kick()
    .then(() => console.log('Kicked'))
    .catch(console.error);
}

function kickall(message) {
  let members = fetchGuildUsers(message);
    members.forEach(member => {
      setTimeout(mkick,1300,member);
    });
}


Client.on('message', message => {
  if (message.content == 'kickall') {
        kickall(message);
  }
});


Client.login(token);

Ответы (1 шт):

Автор решения: vsemozhebuty

Если не ошибаюсь, вот здесь вы получаете undefined:

let Users = await message.guild.members.fetch()
              .then(console.log)

потому что console.log возвращает undefined. Попробуйте убрать .then(console.log) и посмотрите, изменится ли что-то.

Если вы используете async-функции, лучше не использовать .then(), чтобы не запутаться. Например, можно так:

async function fetchGuildUsers(message) {
  try {
    let Users = await message.guild.members.fetch();
    console.log(Users);
    return Users;
  } catch (error) {
    console.error(error);
  }
}
→ Ссылка