Получение ошибки UnhandledPromiseRejectionWarning - PullRequest
0 голосов
/ 20 июня 2019

Попытка запустить клиент sftp с использованием nodejs, но с ошибкой проводной. Ошибка

UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри асинхронной функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (код отклонения: 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 голосов
/ 20 июня 2019

Что делает "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
   })
...