Trying to return a list of disk folder, then for each folder get the files in it. I want the result set to be a single array of objects. The final output from the function call to getPosts() is a promise with an empty array.
Promise { [] }
var accountId = req.body.accountId;
var accountFilePath = 'accountFiles/' + accountId;
function getPosts(accountFilePath) {
return new Promise((resolve, reject) => {
let postArray = [];
fs.readdir(accountFilePath, (err, posts) => {
for (let i = 0; i < posts.length; i++) {
var postId = posts[i];
var postFilePath = accountFilePath + '/' + postId;
var postObject = getFiles(postId, postFilePath)
postObject.then((response) => {
postArray.push(response)
})
}
});
resolve(postArray)
})
}
function getFiles(postId, postFilePath) {
return new Promise((resolve, reject) => {
fs.readdir(postFilePath, function (err, files) {
postObject = {
[postId]: files
}
resolve(postObject)
});
})
}
var fullPostArray = getPosts(accountFilePath)
console.log(fullPostArray);
Desired Result:
[
{
'folder1': [
'DSC0366.jpg',
'DSC8874.jpg',
'DSC8878.jpg',
'DSC8951.jpg'
]
},
{
folder2: [
'nikki.jpg',
'richard.jpg',
'billy.jpg'
]
}
]