Codując bot Discord.js i potrzebuję polecenia, w którym pierwszy argument jest identyfikatorem wiadomości. Ponieważ fetch() zwraca obietnicę, nie ma gwarancji, że wiadomość zostanie znaleziona (oczywiście, jeśli identyfikator jest zły), więc tylko wtedy, gdy znajdzie wiadomość, wchodzi do .then(), jeśli nie, ja po prostu zrobić .catch(msg.delete())

Ale , nadal mam ostrzeżenie w konsoli UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message Ale jeśli zmienię blok łapki do .catch(console.error) Ostrzeżenia znikają i otrzymuję wyjście obiektowe. Ale nie, że ten błąd zostanie wyświetlony w mojej konsoli, ani chcę tych ostrzeżeń. Mój bot powinien po prostu usunąć wiadomość, ponieważ jest to błąd, aby wpisać nieprawidłowy identyfikator.

I jedno pytanie: W przypadku dokładnego wyzwalacza blokowania przyczepu, jeśli identyfikator (Args [0]) jest za bardzo ważny (18 znaków i tylko liczby), ale nadal nie pasuje do żadnej wiadomości, czy też to wszystko powodujące błąd w Obietnica.

Z góry dziękuję!

Oto nieco więcej kodu:

msg.channel.messages.fetch(args[0])
                .then(message => {
                    console.log("then");
                })
                .catch(console.log("catch"));

Co jest naprawdę interesujące, jeśli mój identyfikator jest ważny, to mówi pierwszy "złapać", a następnie "wtedy". Jeśli jest to nieprawidłowe, mówi "złapać", a następnie przychodzi komunikat ostrzegawczy

0
grafpatron 31 lipiec 2020, 13:27

1 odpowiedź

Najlepsza odpowiedź

Spróbuj .catch((err) => { console.log(err); msg.delete(); });

1
Maxime Helen 31 lipiec 2020, 10:31