简体   繁体   中英

How to return a value within a function with an event listener?

I have a function like so:

async function websocketRequest() {
  ws.onmessage(message => {
     // do some validation with message
     // how to return message here?
  })
} 

What I'm trying to accomplish is make a function that sends a websocket request to the server with a unique request id, when the server responds, it should use the request id to match the response with the request.

Maybe wrapping your function in a promise and resolving the message would fit your goal?

async function websocketRequest() {
  return await new Promise(res => {
    ws.onmessage(message => {
      //do some validation
      res(message);
    });
  });
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM