https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
https://ko.javascript.info/async-await
Promise(동기/비동기, 그리고 Promise
)에 이어서..
출처 : https://ko.javascript.info/async-await
ajax나 fetch를 통해 Promise 데이터를 결과로 받았다고 치자.. .then()은 이 Promise가 정상적으로 이행되었을 시 어떤 처리를 할 지 정의해주는 함수다.
// fetch의 결과인 Promise를 바로 처리해버리기..
fetch(url, options).then((response) => console.log("response:", response))
.catch((error) => console.log("error:", error));
async function f() {
return 1;
}```
function 앞에 async를 붙이면 해당 함수는 항상 프라미스를 반환한다. 웃긴게.. 리턴하는 데이터가 프라미스가 아닌 값이라도 이행 상태의 프라미스로 값을 감싸서 프라미스 형태로 반환하게 만든다. 니가 몬데?ㅋ
그러면 위의 코드에서 1은 냅다 까볼 수 있는 것이 아니라 then으로 까봐야 한다는 것..
```javascript
async function f() {
return 1;
}
f().then(alert); // 1
await는 async 함수 안에서만 동작하는 순정 오져버리는 문법이다..
Promise가 이행되거나 거부될 때까지 async 함수 실행을 일시 정지하고, Promise가 이행되면 함수를 일시 정지한 부분부터 재실행한다. 이 때 await문의 환 값은 Promise에서 이행한 값이 된다..
라는데 뭔말임ㅡㅡ?
async는 무조건 Promise를 반환하기로 했음..
이걸 더 봐야할 듯