른록노트

[Node.js] async/await를 이용한 forEach 비동기 사용과, 순차 처리하기 본문

Web/[NodeJs]

[Node.js] async/await를 이용한 forEach 비동기 사용과, 순차 처리하기

른록 2020. 8. 26. 12:01

@설명

 

//변수

//------------------------------------

async function aaa(item){

...

};

let array = ["test1","test2","test3"];

//------------------------------------

 

async function process(array) {
array.forEach(item => {
await aaa(item);
});

}

이렇게 실행하면 aaa 함수가 실행되지 않습니다

forEach가 실행되는 함수가 await 함수를 실행하는데 forEach에서 실행되는 함수가 async이 아니라 

let array = ["test"];
array.forEach(async (item) => {
await aaa(item);
})

이렇게 해줘야합니다

헌데 이렇게하면 forEach당 끝날때마다 기다려 줄 수 없습니다 (순서 불규칙)

그래서 사용할 수 있는게

 

for ..of 입니다

async function process(array) {
for (const item of array) {
await aaa(item);
}
}

이렇게 해주면 순차적으로 배열을 실행합니다

 

@ 참고사이트

https://medium.com/@trustyoo86/async-await%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B9%84%EB%8F%99%EA%B8%B0-loop-%EB%B3%91%EB%A0%AC%EB%A1%9C-%EC%88%9C%EC%B0%A8-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0-315f31b72ccc

반응형
Comments