반응형

JavaScript에서 invoke와 resolve는 비동기 프로그래밍 및 함수 실행과 관련된 개념입니다. 특히, resolve는 Promise와 함께 사용되며, invoke는 특정한 라이브러리에서 동적으로 함수를 실행하는 방식으로 활용됩니다.
1️⃣ resolve란? (Promise와 함께 사용)
resolve는 **Promise(프로미스)**에서 사용되는 함수로, 비동기 작업이 성공적으로 완료되었을 때 결과 값을 반환하는 역할을 합니다.
✅ 기본적인 resolve 사용 예시
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("작업이 완료되었습니다!");
}, 2000);
});
myPromise.then((result) => {
console.log(result); // "작업이 완료되었습니다!"
});
🔹 동작 방식
- new Promise를 생성할 때, 첫 번째 매개변수로 resolve와 reject를 받습니다.
- setTimeout을 사용하여 2초 후에 resolve("작업이 완료되었습니다!")가 실행됩니다.
- resolve가 실행되면 .then() 내부의 함수가 실행되며 "작업이 완료되었습니다!"를 출력합니다.
✅ resolve를 활용한 비동기 함수 (async/await)
function fetchData() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("데이터를 가져왔습니다!");
}, 1000);
});
}
async function getData() {
const data = await fetchData();
console.log(data); // "데이터를 가져왔습니다!"
}
getData();
🔹 핵심 개념
- resolve를 사용하여 데이터를 비동기적으로 반환할 수 있습니다.
- await를 사용하면 resolve된 값을 기다린 후 실행됩니다.
2️⃣ invoke란? (함수 실행 관련 개념)
✅ invoke의 기본 개념
invoke는 일반적으로 함수를 실행(호출)하는 방법을 의미합니다. 자바스크립트 자체에는 invoke라는 기본 메서드는 없지만, 특정 라이브러리에서 함수 실행을 의미하는 용도로 사용됩니다.
✅ invoke를 사용하는 대표적인 예: Lodash 라이브러리
Lodash는 자바스크립트 유틸리티 라이브러리로, _.invoke() 메서드를 제공하여 객체 내의 함수를 실행할 수 있도록 합니다.
const obj = {
greet: function(name) {
return `Hello, ${name}!`;
}
};
console.log(_.invoke(obj, 'greet', 'Alice')); // "Hello, Alice!"
🔹 Lodash _.invoke의 동작 방식
- _.invoke(객체, '메서드명', 매개변수)를 사용하여 객체 내부의 특정 메서드를 호출할 수 있습니다.
- 이 방법은 동적으로 함수 실행을 제어할 때 유용합니다.
📌 resolve와 invoke의 차이점
개념 설명 예제
resolve | Promise를 완료하고 값을 반환하는 함수 | resolve("완료") → .then(result => console.log(result)) |
invoke | 함수를 실행하는 개념 (특정 라이브러리에서 제공) | _.invoke(obj, 'methodName', arg1, arg2) |
3️⃣ 추가 설명: resolve와 reject
✅ reject란?
reject는 resolve와 반대로, Promise가 실패했을 때 호출되는 함수입니다. 예를 들어, HTTP 요청이 실패했거나 데이터가 유효하지 않을 경우 reject를 사용하여 오류를 처리할 수 있습니다.
const myPromise = new Promise((resolve, reject) => {
let success = false; // 실패 상황
if (success) {
resolve("작업이 성공했습니다!");
} else {
reject("작업이 실패했습니다!");
}
});
myPromise
.then(result => console.log(result))
.catch(error => console.log("오류 발생: ", error));
🔹 reject의 동작 방식
- reject("작업이 실패했습니다!")가 실행되면 .catch()가 오류 메시지를 받습니다.
- .then()이 실행되지 않고 .catch()가 실행됩니다.
- 이 방법을 통해 비동기 작업의 오류를 효율적으로 처리할 수 있습니다.
🚀 정리
개념 설명 예제
resolve | Promise를 성공적으로 완료하는 함수 | resolve("완료") → .then(result => console.log(result)) |
reject | Promise가 실패했을 때 오류를 반환하는 함수 | reject("실패") → .catch(error => console.log(error)) |
invoke | 특정 라이브러리에서 함수를 실행하는 기능 | _.invoke(obj, 'methodName', arg1, arg2) |
📌 resolve는 비동기 작업을 완료하는 역할을 하며, invoke는 특정 라이브러리에서 함수를 실행하는 방식으로 활용될 수 있습니다. 또한, reject를 사용하면 비동기 작업의 오류를 처리할 수 있습니다.
반응형
'IT' 카테고리의 다른 글
[25.03.31] 주요 사이트 dns 서버 주소 모음 - 네이버, sk, lg, kt (0) | 2025.03.31 |
---|---|
스켈레톤 UI(Skeleton UI)란? (0) | 2025.02.27 |
[java] input.java와 output.java의 차이점 및 대규모 프로젝트에서의 역할 (0) | 2025.02.27 |
[25.02.23] 주요 사이트 dns 서버 주소 모음 - 네이버, sk, lg, kt, 다음, 카카오 (0) | 2025.02.23 |
[25.02.19] 주요 사이트 dns 서버 주소 모음 - 네이버, sk, lg, kt, 다음, 카카오 (0) | 2025.02.19 |
[Eclipse, Java] 이클립스(Eclipse)에서 Java 프로젝트 생성하는 방법 (0) | 2025.02.06 |
[Eclipse Debug] 이클립스로 디버깅 하는 방법 (0) | 2025.02.06 |
CVS Update가 뭔데 맨날 이클립스가 멈추는거야? 이거 뭔지 아는 사람? (0) | 2025.02.05 |
댓글