Получение сообщения Promise {<pending>} при использовании async-await для выполнения tcp клиента - PullRequest
0 голосов
/ 08 октября 2019

Я выполняю tcp-клиент, используя telnet-client модуль узла.

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> }

Пожалуйста, предложите, что может отсутствовать в моем коде

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Используйте wazuhRun ('linux345'). Then (), он будет работать нормально.

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;
}

wazuhRun('linux345').then(data => {
  console.log(data);
}).catch(err => {
  console.log(err);
})
0 голосов
/ 08 октября 2019

Поскольку вы используете его вне асинхронной функции, вам нужно рассматривать его как Обещание:

wazuhRun('linux345').then((result) => console.log(result));

асинхронные функции являются синтетическим сахаром для Обещаний, поэтому они переводятся в Обещания, поэтому выполучить обещание в ожидании.

Если бы вы вызывали его из другой асинхронной функции, вы могли бы использовать:

const code = await wazuhRun('linux345');

РЕДАКТИРОВАТЬ: О нулевом возврате, возможно, ваша функция выдает ошибку до того, какваша попытка / поймать.

 wazuhRun('linux345')
    .then((result) => console.log(result))
    .catch((error) => console.log(error));

Добавив обработчик catch в Promise, вы сможете увидеть все ошибки, возникающие в вашей асинхронной функции.

...