먼저 상황부터 설명하자면

글수정을 예로들어서

특정글을 수정을했고 완료를하면 수정한걸 저장하고 다시 받아와서 리스폰스 한다고 치자


그러면 

db.modify(...)

db.get(...)

으로 표현가능할껀데


수정이 완료된걸 받으려면 위의 수정이 끝날때까지 기다려야 할꺼임


await db.modify(...)

await db.get(...)


이렇게 둘다 db처리가 완료될때까지 기다릴때

await을 쓰는데 js 팁으로 await 남발하지 말라고 하더라고


뭔가를 여러개 처리해야할땐 promise.all 쓰라했는데

아래 상황보자 각각의 프로세스가 완료되는데 1초씩 걸린다하면


await process1()    //1

await process2()    //2

await process3()    //3초까지 지나야 아래구문 실행


console.log('done')


done이 출력되기까지 총 3초나 걸린다

근데 이걸 all로 묶어서 한번에 실행시키면


await Promise.all([

 process1(),    

 process2(),    //3개 동시에 실행하고 

 process3(),    //done은 1초후에 출력

])


console.log('done')



응답하는 시간 단축시킬수 있다

근데 잡소리는 여기까지하고


위상황처럼 첫번째 프로세스가 완료가된 다음에 아래꺼를 실행해야한다면

상식적으로 await으로 기다리는게 맞음

근데 프로미스랑 reduce랑 섞어서 순서가 보장되게 실행하는 방법이 있다 하더라고





이런식으로 할수있다는데 코드보니까

결국은 then으로 끝나면 실행하는건까


다시 첫번째 예시상황으로 돌아가서


await db.modify()

await db.get()


이랑 차이 없는거 맞지?