获取错误UnhandledPromiseRejectionWarning

时间:2019-06-20 05:10:10

标签: node.js sftp

尝试使用sftp运行nodejs客户端,但出现有线错误。错误是

  

UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:1)

let Client = require('ssh2-sftp-client');
let sftp = new Client();
const process = require('process');

const config = {
    host: 'localhost',
    port: '1026',
    username: 'Nav****',
    password: '*******'
}



sftp.connect(config)


const list = ()=>{
    sftp.connect(config).then(() => {
           return sftp.list('../send_backend');
    }).then((data) => {
            console.log(data, 'the data info');
    }).catch((err) => {
            console.log(err, 'catch error');
    })
}
console.log("=======================================");

console.log("received data =>" + list());

1 个答案:

答案 0 :(得分:0)

列表外的“ sftp.connect(config)”是什么。如我所见,您既没有使用解决方案,也没有使用被拒绝的案例。这就是问题所在。因此,您应该处理异常或删除该代码!

以防万一

sftp.connect(config)
  .then(()=>{//do something here})
  .catch((exception)=>{ console.log(exception) // do something else })

如评论中所述,您可以使用:

let Client = require('ssh2-sftp-client');
let sftp = new Client();
const process = require('process');
const config = {
    host: 'localhost',
    port: '1026',
    username: 'Nav****',
    password: '*******'
}
sftp.connect(config)
  .then(()=>{
    // what you want to do after you make connection goes here
  })
  .catch((exception)=>{ 
       console.log(exception) // do something else
   })