Обратный вызов NodeJS не печатает вывод, когда он успешен - PullRequest
0 голосов
/ 03 октября 2019

Я написал следующий код, который использует обратный вызов nodejs. Он правильно печатает error при отсутствии соединения с telnet.

Тем не менее, он не печатает Success! при успешном выполнении telnet

Когда я вручную выполняю telnet linux003 4102 Я вижу пустоеэкран. Пустой экран означает, что telnet успешно подключен

var abc = require("expect-telnet");
abc("linux003:4102", 
function(err) {
  if (err) { 
    console.error(err);
  }
  else {
    console.log('Success!');
  }
});

Ответы [ 3 ]

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

Согласно expect-telnet, обратный вызов вызывается только тогда, когда будет ошибка. Таким образом, в следующем

var abc = require("expect-telnet");
abc("linux003:4102", 
function(err) {
  if (err) { 
    console.error(err);
  }
  else {
    console.log('Success!');
  }
});

обратный вызов будет вызываться только в случае ошибки. Так что Success! не будет напечатано.

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

Похоже, что вы можете использовать свойство out в объекте ожидаемого шага:

out функция : выводФункция получает выходные данные с предыдущего шага.

const et = require("expect-telnet");

et("linux003:4102", [
  {
    expect: "some expected text", 
    out(output) {
      console.log("Success");
    }, 
    send: "exit\r"
}
], (err) => {
  if (err) console.error(err);
});

При этом данный пакет больше не поддерживается (см. здесь ), и автор рекомендует другой пакетпохоже, что это позволит вам сделать это здесь ).

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

в соответствии с ожидаемым документом telnet, обратный вызов вызывается только при возникновении ошибки.

...