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 함수를 호출할때
매개변수 안에서 이 값들을 처리해주면 된다.