I am currently using ssh2-sftp-client library to connect with sftp but I am using keyboard-interactive on method to resolve one issue I need to return the resolve after a both connect and on method are resolved. Below is my code
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);
});
After everything is finished then return resolve, how can I achieve this?