Olá Pessoal, estou com dificuldades para resolver o seguinte problema. Estou fazendo o upload de aquivos no google cloud storage / firebase storage, depois desse passo, eu gravo o path da url public no banco no-sql, o problema é que quando vai gravar no banco os uploads (multiplos arquivos) no google clould ainda não terminou e o array com o path vai vazio. Pesquisando isso pode ser resolvido com a promise.. mas não tenho tanto conhecimento. Aqui vai o pedaço do código, se alguém puder ajudar...
Por exemplo: Gostaria que o console -> complete promise fosse executado só depois que foi feito todos uplaods para o google cloud(quando termina-se a execução promise runing).
app.post('/upload', (req, res) => {
...
Promise.all(
files.fotos.map( item => uploadImageAsPromisse(storage, bucketName, fields.album, item))
);
//Grava no Banco de Dados o path público
console.log('complete promise');
...
}
function uploadImageAsPromisse(storage, bucketName, album, file) {
storage
.bucket(bucketName)
.upload(file.path, { public: true, destination: `albuns/${album}/${file.name}` })
.then(() => {
console.log('promise runing');
console.log(`${file.path} uploaded to ${bucketName}.`);
})
.catch(err => {
console.error('ERROR:', err);
});
}