var async = require('asyncawait/async');
var await = require('asyncawait/await');
Async Function :
var uploadResponse = async(function() {
var uploadresult = await (fileUploadFun.reportFileUpload(files,title,name));
console.log("waiting",uploadresult); // undefined
var selection = db.Sections.create({
// use uploadresult
}).then(() => {
console.log("sections created");
})
return 'result';
})
uploadResponse().then(function(result) {
console.log("upload", result);
res.redirect("back")
})
Await function :
reportFileUpload: function(uploadFileData, title,reportPath) {
fs.readdir(reportPath, (err, files) => {
var filenames = files.map(file => file.replace(file, file.split('.')[0]));
var fileext = files.map(file => file.replace(file, file.split('.')[1]))
if (filenames.includes(title)) {
console.log("file exists already");
var index = filenames.indexOf(title);
var ext = fileext[index];
fs.unlink(filepath + title + '.' + ext, (err) => {
if (err) throw err;
uploadFileData.mv(filepath + title + extension, function (err) {
if (err) {
console.log("error",err);
return 'error';
} else {
return title;
}
});
});
}
else {
uploadFileData.mv(filepath + title + extension, function (err) {
if (err) {
console.log("error",err);
} else {
console.log("uploaded");
return title;
}
});
}
})
},
Inside async I need to wait for the result of uploadfile then create table after return response from readdir and upload. But when I console await return it prints undefined and await does not wait for the return and executes other function below