JavaScript에서 비동기 처리를 위해 Promise를 사용해야 한다는데, 콜백 지옥에서 벗어나고 싶습니다.
Promise의 기본 구조와 then/catch 사용법, 그리고 Promise.all 같은 것도 설명 부탁드립니다.
// 콜백 지옥...
getData(function(a) {
getMoreData(a, function(b) {
getEvenMoreData(b, function(c) {
console.log(c);
});
});
});
댓글 3
```js
const promise = new Promise((resolve, reject) => {
// 비동기 작업
if(성공) resolve(결과);
else reject(에러);
});
promise.then(result => console.log(result)).catch(err => console.error(err));
```
체이닝으로 콜백 지옥을 해결할 수 있어요.
```js
Promise.all([fetch(url1), fetch(url2), fetch(url3)])
.then(([r1, r2, r3]) => { /* 모든 결과 사용 */ });
```
그리고 async/await도 같이 공부하세요. Promise를 더 깔끔하게 쓸 수 있습니다.