비동기화를 기다리지 마십시오!
비동기 워크플로는 2007년 await 포인트와 함께 F# 프로그래밍 언어에 처음 도입되었으며, 이후 C# 언어의 Async/Await 메커니즘에 영향을 미쳤습니다. 결국 Haskell의 수석 개발자인 Simon Marlow는 2012년에 Python, Rust, C++ 등과 같은 다른 언어로 채택되는 async 패키지의 폭탄을 만들었습니다. JavaScript는 게임에 조금 늦었지만 결국 ECMAScript 2017 에디션에서 Async/Await를 통합했습니다. , 나머지는 역사입니다.
Async/Await는 기본적으로 Promise를 더 쉽게 사용할 수 있도록 둘러싸는 구문상의 설탕이며 (추측한 대로)
Async
키워드로 먼저 선언됩니다. 작동 방식에 대해 알아보기 전에 먼저 좋은 옛 친구를 살펴본 다음/잡아 보겠습니다.const salutation = new Promise((resolve, reject) => {
resolve("What is up my fellow homie?");
});
salutation
.then((value) => {
console.log("The first promise was resolved", value);
})
.then((value) => {
console.log("The second promise was resolved", value);
})
.catch((error) => {
console.error("Error: The promise is rejected.", error);
})
.finally(() => {
console.log(
"This promise is now settled, meaning it has been resolved or rejected."
);
});
if/then 조건문이 switch/case 문보다 직관적으로 이해하기 더 쉬운 것처럼 then/catch 블록이 async/await 구성 요소보다 해석하기 쉽다는 것은 아마도 많은 개발자에게 사실일 것입니다. 코딩에 목발을 얹고 항상 새로운 영역으로 모험을 떠납니다. 이 예제에는 약속을 반환하는 변수 인사말이 있습니다. 그런 다음 내가 즉석에서 작성한 쓸모없는 코드를 반환하는 then/catch 블록과 연결됩니다.
다음은 동일한 작업을 수행하는 async/await 약속 처리의 예입니다.
async function doSomething() {
const value = await greeting;
}
async function doSomething() {
try {
const value = await greeting;
console.log("The first promise was resolved", value);
} catch((error) {
console.log("The second promise was resolved", value);
} finally {
console.log(
"This promise is now settled, meaning it has been resolved or rejected");
}
}
이 코드가 약간 더 짧은 방법에 주목하십시오. 키워드 async는 기본적으로 doSomething 함수가 약속을 반환하는 동시에 그 안에 비 약속도 래핑하도록 합니다. await 키워드는 Promise가 확정되고 반환될 때까지 JavaScript가 이 함수 내의 모든 진행을 중단하도록 합니다. 평소와 같이 거부의 경우 오류가 발생합니다.
이제 최소한 Async/Await의 존재에 대해 들어봤으니 안락한 영역에서 벗어나 자신의 코드로 구현하기 위해 AWAIT하지 마십시오. 지옥을 잡으려고 할 필요는 없습니다(try-catch 지옥에 대한 말장난), 약속합니다.
Reference
이 문제에 관하여(비동기화를 기다리지 마십시오!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/velouriagreen/dont-await-to-get-asynced-3ch텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)