-
내부에서 모두 await처리가 되었는 async형 Main1()함수를
외부에서 호출 할 때 다음 줄에 오는 명령과 비동기로 처리 될 수 있다.
결론은 async형 함수는 어떠한 경우에도 비동기 처리가 발생할 수 있다.
- return값에서 then()처리를 하는 경우도 결국, 그 함수 속은 비동기 시점이다.
- async함수가 아닌 환경에서 async함수를 호출 할 때 await를 사용할 수 없다.async function Pm1 (name: string, rst: boolean) { let rst1 = new Promise((resolve, reject) => { console.log(name + ' work front'); if(rst) { resolve(name + ' resolve func'); } else { reject(name + ' reject func'); } console.log(name + ' work rear'); }) .then((rst) => { console.log(name + ' then rst: ' + rst); }) .catch(err=>{ console.log(name + " err:" + err); }); return rst1; } async function Main1() { console.log("Main start"); await Pm1("P1", true); await Pm1("P2", true); await Pm1("P3", true); await Pm1("P4", true); console.log("Main end"); } console.log("Global start"); //await Main1(); //error: can't call Main1(); console.log("Global end");
Global start Main start P1 work front P1 work rear Global end P1 then rst: P1 resolve func P2 work front P2 work rear P2 then rst: P2 resolve func P3 work front P3 work rear P3 then rst: P3 resolve func P4 work front P4 work rear P4 then rst: P4 resolve func Main end
'Html Css JavaScript' 카테고리의 다른 글
Promise Ex 결과(reject,resolve) 순서 (0) 2023.01.22 Promise Ex 결과(resolve, reject)와 return값 (0) 2023.01.22 Promise Ex 결과(resolve, reject) 없을 경우 (0) 2023.01.22 Promise Ex 결과에서 재귀적 사용 (0) 2023.01.22 Bootstrap (0) 2023.01.21 bootstrap Ex navs (0) 2023.01.21 Alert message bar Ex (0) 2023.01.21 Css, Style 적용 방식 (내부, 외부, 직결, external, internal, inline) (0) 2023.01.18