2017-10-04 7 views
1

인 UnhandledPromiseRejectionWarning을 catch 할 수 없지만 작동하지 않습니다. 그것은 내 코드를 무시하고 단지 콘솔에 오류를 출력합니다.내 약속에 UnhandledPromiseRejectionWarning을 잡으려고하지만 약속이

오류 :

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Forbidden (Cannot send messages to this user)

코드 :

e.message.author.openDM().then((message) => { 
    message.sendMessage(`test`); 
}).catch((error) => { 
    e.message.channel.sendMessage(error + "test"); 
}); 

이 discordie를 사용하여 불화 봇입니다. 내 생각에 위의 코드는 메시지 작성자에게 개인 메시지를 통해 "test"라는 단어를 보내야하며 그렇지 않으면 메시지를 보낸 채널에서 오류와 단어 테스트를 전송합니다. 두 번째 부분 (캐치 내부)은 실행되지 않습니다.
tl; dr 위의 코드에서 catch가 작동하지 않고 bot에 사용자를 복사 할 수있는 권한이없는 경우 콘솔에서 위의 오류가 발생합니다.

답변

3

return 내면 then 기능을 잊어 버렸습니다. message.sendMessage('test')가 약속을 반환한다고 가정합니다.

e.message.author.openDM().then((message) => { 
    return message.sendMessage(`test`); 
}).catch((error) => { 
    e.message.channel.sendMessage(error + "test"); 
});