[javascript] 객체 순회에서의 비동기 동작 처리하기
자바스크립트에서 객체를 순회하면서 각 속성에 대한 비동기 동작을 처리해야 할 때가 있습니다. 이런 상황에서는 일반적으로 for...in
루프나 Object.keys()
를 사용하여 순회를 수행하고, 각 속성에 대해 비동기 동작을 수행할 수 있습니다.
for...in
루프를 사용한 비동기 동작 처리
for...in
루프를 사용하여 객체의 속성을 순회하는 예제는 다음과 같습니다.
const obj = {
a: 1,
b: 2,
c: 3
};
for (const key in obj) {
if (Object.hasOwnProperty.call(obj, key)) {
// 비동기 동작 처리
processData(obj[key]).then(result => {
console.log(`${key}: ${result}`);
});
}
}
async function processData(value) {
// 비동기 동작 처리 예시
return new Promise(resolve => {
setTimeout(() => {
resolve(value * 2);
}, 1000);
});
}
위 예제에서는 for...in
루프를 사용하여 객체의 각 속성을 순회하고, 각각의 속성에 대해 비동기 함수를 호출하고 그 결과를 처리하고 있습니다.
Object.keys()
를 사용한 비동기 동작 처리
또 다른 방법으로는 Object.keys()
를 사용하여 객체의 키 배열을 얻은 후에 이를 순회하면서 비동기 동작을 처리할 수 있습니다.
const obj = {
a: 1,
b: 2,
c: 3
};
Object.keys(obj).forEach(async key => {
// 비동기 동작 처리
const result = await processData(obj[key]);
console.log(`${key}: ${result}`);
});
async function processData(value) {
// 비동기 동작 처리 예시
return new Promise(resolve => {
setTimeout(() => {
resolve(value * 2);
}, 1000);
});
}
위 예제에서는 Object.keys()
를 사용하여 객체의 키 배열을 얻은 후 forEach
메서드를 사용하여 각 키에 대해 비동기 동작을 처리하고 있습니다.
결론
객체의 속성을 순회하면서 비동기 동작을 처리하는 것은 일반적인 요구사항입니다. for...in
루프나 Object.keys()
를 사용하여 객체를 순회하며, 각 속성에 대한 비동기 동작을 처리할 수 있습니다.