我想知道是否可以以阻塞方式运行 node-ssh2 中提供的方法。
我正在用 node-vows 测试我的代码。
conn-test.js 的片段
suite = vows.describe("conn-test");
suite.addBatch({
topic: function () {
return new Connection("1.2.3.4", "root", "oopsoops");
}
"run ls": function (conn) {
conn.send("ls");
}
});
conn.js 的片段
var ssh2 = require("ssh2");
function Connection(ip, user, pw) {
//following attributes will be used on this.send()
this.sock = new ssh2();
this.ip = ip;
this.user = user;
this.pw = pw;
}
Connection.prototype.send = function (msg) {
var c = this.sock;
//Copy the example 1 on https://github.com/mscdex/ssh2
}
Node-Vows 运行我的代码没有错误。但是,问题是誓言终止比来自 ssh2 的回调更快。换句话说,我无法从 ssh2 得到响应。
似乎 node-async 是可能的解决方案之一。但是,我不知道如何在异步的帮助下强制事件驱动的调用成为阻塞调用。
任何人都可以帮忙吗?
--2014 年 10 月 4 日更新
修正标题的错别字......