Я пытаюсь интегрировать net -snmp (https://www.npmjs.com/package/net-snmp) в nodejs. Но учитывая асинхронность природы узла. Функция обратного вызова SNMP запускается после того, как я возвращаю значения.
var answer: any;
function getVarbinds(error: any ,varbinds: any){
console.log("===Entered get varbinds===");
//SNMP Example code below
if (error) {
console.error (error);
message = error
} else {
...
var data = "macAddress: xxx";
answer = {code: 0, data: data, message: ""}
console.log("Data is: " + data);
}
}
console.log("Runing the SNMP now");
await session.get(options.oids, getVarbinds);
return await answer
Дает следующий вывод:
api_1 | Runing the SNMP now
api_1 | undefined // <---- this is the return
api_1 | Runing the SNMP now
api_1 | Received response:
api_1 | undefined
api_1 | ===Entered get varbinds===
api_1 | Data is: {macAddress: xxx}
api_1 | ===Entered get varbinds===
api_1 | Data is: {macAddress: xxx}