如何在执行 Firebase 删除请求后重新加载页面
How to reload the page after a Firebase delete request has executed
我有一个方法可以向我的 Firebase 集合发送删除请求。我希望在删除请求完成并删除文档后重新加载页面。就像现在一样,页面会立即重新加载并且文档不会删除,但如果我删除代码的重新加载部分,它会正常工作。
async deletePost() {
database.collection("posts").where("id", "==", this.id).get().then(data => {
data.forEach(doc => {
doc.ref.delete()
})
}).then(() => {
M.toast({
classes: "toast-alert",
html: "Post deleted"
})
}).then(
window.location.reload()
)
}
每个 delete()
调用都是异步的,因此您需要 所有 个调用才能完成。解决方案是对从 delete()
:
获得的 return 值使用 Promise.all
async deletePost() {
return database.collection("posts").where("id", "==", this.id).get().then(data => {
const promises = data.docs.map(doc => doc.ref.delete());
return Promise.all(promises);
}).then(() => {
window.location.reload()
)
}
我有一个方法可以向我的 Firebase 集合发送删除请求。我希望在删除请求完成并删除文档后重新加载页面。就像现在一样,页面会立即重新加载并且文档不会删除,但如果我删除代码的重新加载部分,它会正常工作。
async deletePost() {
database.collection("posts").where("id", "==", this.id).get().then(data => {
data.forEach(doc => {
doc.ref.delete()
})
}).then(() => {
M.toast({
classes: "toast-alert",
html: "Post deleted"
})
}).then(
window.location.reload()
)
}
每个 delete()
调用都是异步的,因此您需要 所有 个调用才能完成。解决方案是对从 delete()
:
Promise.all
async deletePost() {
return database.collection("posts").where("id", "==", this.id).get().then(data => {
const promises = data.docs.map(doc => doc.ref.delete());
return Promise.all(promises);
}).then(() => {
window.location.reload()
)
}