В настоящее время я использую библиотеку ssh2-sftp-client для соединения с sftp, но я использую метод интерактивной клавиатуры для решения одной проблемы. Мне нужно вернуть разрешение после того, как будут решены оба метода: connect и on.Ниже приведен мой код
const Client = require('ssh2-sftp-client');
const sftp = new Client();
const connectToSFTP = config => {
console.log(config);
return new Promise((resolve, reject) => {
sftp.connect({
host: config.host,
port,
username: config.username,
tryKeyboard: true
}).then(data => {
console.log(data);
resolve(data);
}).catch(err => {
console.log(err);
reject(err);
});
sftp.on('keyboard-interactive', (name, instructions, instructionsLang, prompts, finish) => {
console.log('Connection :: keyboard-interactive');
finish([config.password]);
})
});
};
const functionOne = () => {
return new Promise((resolve, reject) => {
resolve('somedata');
})
}
const functionTwo = () => {
return Promise.all(lodash.map(data, (item, item1) => {
return connectToSFTP(item.config)
.then(data => {
console.log(data); //cannot see data
}).catch(err =>{
console.log(err);
})
})
}
functionOne()
.then(data => {
return functionOne();
})
.then(data => {
return functionOne();
})
.then(data => {
return functionOne();
})
.then(data => {
console.log('second');
return functionTwo();
}).then(data => {
console.log('finished');
})
.catch(err => {
console.log(err);
});
После того, как все будет завершено, верните разрешение, как я могу добиться этого?