Здесь другая альтернатива, похожая на ответ Давмича .Но вместо вызова finalizeProcess
внутри processPhotos
возвращается обещание, которое вы можете использовать для вызова finalizeProcess
.
function processPhotos() {
return Promise.all([
new Promise(resolve => {
this.foto1File.generateBlob(blob => {
ref.child('picture_1').put(blob).then(resolve);
});
}),
new Promise(resolve => {
this.foto2File.generateBlob(blob => {
ref.child('picture_2').put(blob).then(resolve);
});
})
]);
}
processPhotos().then(pictureRefs => finalizeProcess());
В качестве альтернативы вы можетеразверните сначала выполнить некоторую обработку.
ref.child('picture_1').put(blob).then(resolve);
Становится:
ref.child('picture_1').put(blob).then(pictureRef => {
// do stuff with pictureRef
resolve(/* custom value */);
});