디버깅 및 약속 연습
두 가지 기능이 있습니다.
다음은 귀하에게 제공된 구현입니다.
getResult
getResult는 Promise를 반환하는 비동기 함수입니다. Promise는 1000밀리초 내에 거부 또는 해결되며, 거부 또는 해결 여부는 생성된 변수에 따라 다릅니다. 변수는 -0.5에서 0.5 사이의 값을 갖습니다. 즉, 변수가 양수일 확률이 50%입니다. 변수가 음수이면 거부합니다. 간단하죠?
const getResult = async () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
let number = Math.random() - 0.5
if (number < 0) { reject("failure") }
resolve("success")
}, 1000)
})
}
getTestResult는 훨씬 더 간단합니다.
result
라는 변수를 시작하고 단순히 getResult()
에서 Promise를 가져옵니다. 그런 다음 성공 여부를 기록합니다.getTestResult
async function testGetResult() {
let result = await getResult()
result.then((res) => console.log(res))
.catch((err) => console.log(err))
}
문제
이 예제를 실행할 때 노드에서 오류가 발생합니다.
node:internal/process/promises:246
triggerUncaughtException(err, true /* fromPromise */);
^
[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "failure".] {
code: 'ERR_UNHANDLED_REJECTION'
}
무엇이 잘못되었나요?
며칠 안에 답변으로 게시물을 업데이트하겠습니다 :)
08/01 업데이트
힌트:
getResult()
에서 반환되는 유형은 무엇입니까?
Reference
이 문제에 관하여(디버깅 및 약속 연습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/msoup/an-exercise-with-debugging-and-promises-2m0p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)