看起来您已经对其进行了安排,以便for循环将进程挂起,直到
remove()
承诺会解决。缺少的概念是
Promise.all()
.
// moved to a promise-returning function so we can see what's going on
function deleteDataAndStorage(newsId, obj) {
let path = newsId + "/" + obj.key + "/" + obj.name;
let deletionFileLocation = storageNews.child(path);
return deletionFileLocation.delete().then(() => {
return databaseNews.child(newsId).child('thumbnails').child(obj.key).remove();
});
}
现在,循环变得简单明了。
许诺全部()
按照名称所说的做:当您传递给它的所有承诺都已解决时,它将解决一系列结果。
let promises = [];
for (index = 0; index < count; index++) {
promises.push(deleteDataAndStorage(newsId, delArray[index]));
}
return Promise.all(promises).then(result => {
console.log('done');
});