我正在使用uploadTask.on作为Firebase,但我想在所有上传完成后触发...我设法为每个任务执行了此操作,但并非为所有任务都执行
在下面的代码中,我尝试使用Promise.all,但无法正常工作
mediaHandling(keyTag){
var t=0
var linkArray=[]
const promises=[]
this.props.sMedia.map(e=>{
this._urlToBlob(e.uri).then(data=>{
t=t+1
const uploadTask =firebase.storage().ref('MedicalCasePics/'+keyTag+'/'+t).put(data,{customMetadata:{'Case':keyTag}})
promises.push(uploadTask);
uploadTask.on('state_changed', function(snapshot){
}, function(error) {
}, function() {
uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
linkArray.push(downloadURL)
firebase.database().ref('Post/').child(keyTag).child('Media/').update(
linkArray
)
})
})
})
})
Promise.all(promises).then(value => {
console.log('all uploads complete');
});
}