Promisiunea rămâne nerezolvată, chiar și după manipulare toate cazurile

voturi
0

Am scris pe un Discord.JS bot de destul de un pic acum, și de fiecare acum și apoi mi se pare a arunca o întâmplare eroare / avertisment în consolă , după executarea unuia dintre comenzile sale de chat ( în mod specific !clear).

Acum, așa cum am arătat deja, mesajul I a lua în consola mea este un avertisment , nu o eroare reală, astfel încât nu e problema principală am;

Problema mea constă în executarea comenzii de pe partea lui discordie: Din cauza nerezolvată promisiunea, a respins, acesta nu va executa !cleardeloc, lăsând toate mesajele , inclusiv comanda in sine din spatele. Iată un fragment din codul meu:

if (member.hasPermission(MANAGE_MESSAGES)) {
    channel.fetchMessages({ limit: 100 })
        .then(messages => {
            console.log(`Deleting ${messages.size} messages...`);
            channel.bulkDelete(messages).then(res => {}, err => {});
            channel.sendEmbed({
                // Success Message
            }).then(msg => msg.delete(10000), err => console.log(err));
        }, err => { console.log(err) })
} else {
    channel.sendEmbed({
        // Permission Message
    }).then(msg => msg.delete(10000), err => { console.log(err) });
}

După cum puteți vedea, am rezolvat atât succesul și eșecul starea de fiecare făgăduință, dar voi vedea în continuare următorul avertisment în consolă:

(nod: 14768) Eroare: Cerere Bad Uneori , de asemenea , aruncări Nu a fost găsit

- stivă Trace, care include numai erorile Node.JS interne -

(Nod: 14768) DeprecationWarning: Unhandled respingeri promit sunt depreciate. În viitor, promit respingerile care nu sunt manevrate vor termina procesul Node.js cu un cod de ieșire non-zero.

- Mai multe stivei nu cu privire la oricare din propriul meu cod -

Dacă oricare dintre voi nevoie de cod suplimentar furnizat pentru a răspunde la întrebare, nu ezitați să mă întrebați și voi face acest lucru. De asemenea, nu pot + răspunsuri rep încă, dar întotdeauna apreciez „em :)

Întrebat 24/02/2017 la 17:26
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Nu manipulati msg.delete(10000)respingerea. Ar trebui să se ocupe de așa:

channel.sendEmbed({
  // Success Message
}).then(msg => msg.delete(10000)).catch(err => console.log(err));
Publicat 24/02/2017 la 18:12
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more