具有异步值的 Ssh 连接

Ssh conection with async value

我需要获取 cat 值 txt return 并将其传递给另一个函数,但目前在 try catch 和 promise pending 中出现错误,我该怎么做?

   var SSH2Shell = require("ssh2shell");

async function sshFunction() {
  let finalList = [];
  try {
    var host = {
      server: {
        host: "xxxxxxxxxxxx",
        userName: "xxxxxxxxxx",
        password: "xxxxxxx",
      },
      commands: [
        "sudo /usr/bin/rootsh -i -u root",
        "cd ..; cd u01/scripts/; cat saida.txt",
      ],
    };

    finalList.push(
      (result = await SSH2Shell(host)),
      (callback = function (sessionText) {
        let list = [];
        list.push(sessionText);
        return list; // Return this call back
      })
    );
  } catch {
    console.log("error");
  }
  let resultList = await Promise.all(finalList);
  return resultList;
}

var test = sshFunction();
console.log(test);

结果:

error
Promise { <pending> }
async function sshFunction() {
  return new Promise(async (resolve, reject) => {
    var host;
    host = {
      server: {
        host: "xxx.xxx.xx.xx",
        port: "xx",
        userName: "",
        password: "",
        passPhrase: "",
        privateKey: fs.readFileSync(`./xx.cer`),
      },
      commands: ["echo $(pwd)", "ls -l"],
    };

    SSH = new SSH2Shell(host);

    SSH.connect((sessionText) => {
      const data = sessionText;
      resolve(data);
    });
  });
}