NodeJS回调成功时不打印输出
Posted
技术标签:
【中文标题】NodeJS回调成功时不打印输出【英文标题】:NodeJS callback not printing output when it is success 【发布时间】:2020-02-01 08:45:50 【问题描述】:我编写了以下使用 nodejs 回调的代码。
当没有 telnet 连接时,它会正确打印 error
。
但是,当 telnet 成功执行时,它不会打印Success!
当我手动执行telnet linux003 4102
时,我看到一个空白屏幕。黑屏表示telnet连接成功
var abc = require("expect-telnet");
abc("linux003:4102",
function(err)
if (err)
console.error(err);
else
console.log('Success!');
);
【问题讨论】:
当你看到一个空白屏幕意味着它没有连接??? 黑屏表示已连接 【参考方案1】:看起来您可以利用期望步骤对象中的out
property:
out
function:输出函数,接收上一步以来的输出。
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);
);
话虽如此,这个包不再被维护(见here),作者推荐另一个看起来可以让你这样做的包here)。
【讨论】:
它仍然没有显示Success
消息。我正在尝试使用telnet-client
。你能帮助解决那里面临的错误吗? ***.com/questions/58212553/…【参考方案2】:
根据expect-telnet
,只有在出现错误时才会调用回调。
所以,在下面
var abc = require("expect-telnet");
abc("linux003:4102",
function(err)
if (err)
console.error(err);
else
console.log('Success!');
);
只有在出现错误时才会调用回调。所以Success!
不会被打印出来。
【讨论】:
【参考方案3】:根据expect-telnet doc,只有在发生错误时才会调用回调。
【讨论】:
如何打印Success!
?我需要在我的代码中进行哪些更改才能执行此操作
@meallhour try "telnet-client" 它返回承诺你也可以使用 async awit 它会抛出错误或成功npmjs.com/package/telnet-client
我正在尝试使用telnet-client
。你能帮助解决那里面临的错误吗? ***.com/questions/58212553/…以上是关于NodeJS回调成功时不打印输出的主要内容,如果未能解决你的问题,请参考以下文章