Ваш return
не связан с вашей функцией getInfo
, он связан с функцией анонимного обратного вызова, которую вы определяете function(reply) {...
.
Вы можете преобразовать свою функцию для возврата обещания, но это потребует, чтобы вы ожидали его (или использовали then
с обратным вызовом на вызывающей стороне):
module.exports = {
getInfo: function(id) {
return new Promise(resolve => {
var requester = zmq.socket('req');
var config = 'NACK';
requester.connect("ipc:///tmp/endpoint");
console.log("Sending request...");
requester.send(["GET_INFO","1234"]);
requester.on("message", function(reply) {
//console.log("Received reply", ": [", reply.toString(), ']');
requester.close();
resolve(reply.toString());
});
});
},
}
Чтобы узнать об обещаниях и асинхронности / ожидания, см., например, https://javascript.info/async-await
Чтобы вызвать функцию с помощью await, можно, например, выглядеть так:
var result = await getInfo(id); // Assuming the function is imported/required before