function delay(ms) {
	return new Promise((resolve, reject) => {
    	setTimeout(() => {}, ms);
    });
}
async function b() {
	const p1 = delayP(3000);
  	const p2 = delayP(6000);
  	await Promise.allSettled([p1, p2]);
  	await delayP(9000);
}
async 함수 b 를 promise로 바꿔보자!
new Promise((resolve, reject) => {
	const p1 = delayP(3000);
  	const p2 = delayP(6000);
  	return Promise.allSettled([p1, p2]);
})
	.then(() => {
		return delayP(9000);
	});
const results = await Promise.all([p1, p2, p3]);
results.map(async () => {
	await result조작();
}, []);
이것은 조작이 거의 동시에 일어나고
(p1, p2, p3 거의 동시에, 백그라운드에서 동시에 일어나는 것처럼)
const results = await Promise.all([p1, p2, p3]);
for (let result of results) {
	await result조작();
}
이것은 조작이 순서대로 일어난다.
p1 끝나고 p2 끝나고 p3
const x = true;
let y = false;
function a() {
	let a = 4;
  	y = true;
  	if (x) {
    	let a = 3;
      	for (let i = 0; i < a; i ++) {
        	console.log(i, a); // 0, 3	1, 3	2, 3
        }
      	if (!y) {
        	kkk();
        }
    }
}
함수 a 안에 if 문 안에 for 문만 선언 지도를 작성해보자!

let arr = [];
for (let result of results) {
	arr.push(result조작());
}
await Promise.all(arr); // 거의 동시에 처리
위 방식으로 사용하기도 함.