1 min read

콜백 함수 내부에서 값을 뽑기

let tmp;
socket.emit("host", (data) => {
	chrome.scripting.executeScript({
		target: { tabId: currtab[0].id },
		func: () => { setStateHost(); }
	});
	tmp = {"status": "success", "log": data.roomCode };
});
return tmp;

이런 느낌으로

웹소켓을 통해서 전달하고 받아온 값을

콜백함수 바깥으로 빼내고 싶었다.

 

하지만 이렇게 짜는 경우에 tmp 변수를 확인해보면 값이 undefined가

찍히게 되는데,

 

새로운 콜백을 만들어서 이를 해결할 수 있다는 듯.

async function hostRoom(callback) {

함수의 선언부에 매개변수로 콜백을 넘겨주고

callback({"status": "success", "log": data.roomCode });

밖으로 빼내오고 싶은 값을 콜백함수의 인자로 넘겨준 다음에

hostRoom((data) => {
	sendResponse({ message: data });
});

hostRoom 함수를 호출할때

매개변수 안에서 이 값들을 처리해주면 된다.