использование сокета и возврат значения при получении его слушателем сокета

#node.js #reactjs #react-native #dgrams

Вопрос:

У меня возникла проблема с тем, что я использую сокет, и мне нужно возвращать значение, когда прослушиватель сокетов получает его. Вот что я сделал до сих пор:

 function getIP(mdns) {
    let time = 0
    const closeSocket = (sock) => {
        sock.close()
        console.log('socket closed!')
    }
    const checkSocket = (sock) => {
        time  
        if (time > 3) {
            closeSocket(socket)
        }
        else {
            setTimeout(() => checkSocket(sock), 10)
        }
    }
    let address = ''
    let socket = dgram.createSocket('udp4')
    socket.bind(portNum)
    socket.once('listening', () => {
        socket.send(bytes, 0, bytes.length, ListeningPort, ipAddress)
        checkSocket(socket)
    })
    socket.on('message', (msg, rinfo) => {
        var msginCar = msg.map(item => String(item))
        let msgBody = msg
        let msgString = ''
        let localMDNS
        for (let i = 0; i < msgBody.length; i  ) {
            msgString = msgString   String.fromCharCode(msgBody[i])
        }
        localMDNS = msgString.substr(13, 8)
        if (localMDNS === mdns) {
            address = rinfo.address
        }
        closeSocket(socket)
    }
    return address
}
 

теперь вы видите эту розетку.on дает мне rinfo только тогда, когда он его получает, поэтому функция getIP возвращает мне пустую строку. Есть идеи, как я могу справиться с этой проблемой? Спасибо