使用async
我正在使用telnet-client
节点模块执行tcp客户端。
const Telnet = require('telnet-client')
async function wazuhRun(host) {
let connection = new Telnet()
let ErrCode = -1;
let params = {
host: host,
port: 2345,
negotiationMandatory: false,
timeout: 1500
}
try {
await connection.connect(params)
ErrCode = 0;
} catch(error) {
ErrCode = -1;
}
return ErrCode;
}
const code = wazuhRun('linux345');
console.log(code);
在运行上述代码时,我得到了Promise { <pending> }
请提出我的代码中可能缺少的内容
回答如下:const code = await wazuhRun('linux345');
由于wazuhRun被标记为异步函数,并且您正在其中进行异步调用(await connection.connect(params)),因此需要使用await。
异步函数是Promises的语法糖,它们被转换为Promises,这就是为什么您要等待Promise的原因。通过使用await,您可以告诉脚本在继续运行之前等待Promise解决。
查看此代码的另一种方法是:
wazuhRun('linux345').then((result) => console.log(result));
使用async
我正在使用telnet-client
节点模块执行tcp客户端。
const Telnet = require('telnet-client')
async function wazuhRun(host) {
let connection = new Telnet()
let ErrCode = -1;
let params = {
host: host,
port: 2345,
negotiationMandatory: false,
timeout: 1500
}
try {
await connection.connect(params)
ErrCode = 0;
} catch(error) {
ErrCode = -1;
}
return ErrCode;
}
const code = wazuhRun('linux345');
console.log(code);
在运行上述代码时,我得到了Promise { <pending> }
请提出我的代码中可能缺少的内容
回答如下:const code = await wazuhRun('linux345');
由于wazuhRun被标记为异步函数,并且您正在其中进行异步调用(await connection.connect(params)),因此需要使用await。
异步函数是Promises的语法糖,它们被转换为Promises,这就是为什么您要等待Promise的原因。通过使用await,您可以告诉脚本在继续运行之前等待Promise解决。
查看此代码的另一种方法是:
wazuhRun('linux345').then((result) => console.log(result));