编辑以在底部添加问题: 目前,它可以正常运行,只是它不是异步运行(我认为这是异步等待尝试的原因)。
我的问题是如何使提交流程异步,以便我可以仅在上传信息后执行操作(在本例中提示用户首选的后续步骤)。
const handleSubmit = async () => {
try {
if (image.value) {
await uploadImage(image.value); <--I thought this was
asynchronous, but I tested and I don't think it is.
}
const colRef = collection(db, "collection");
//I thought the below was asynchronous, but it's not
await addDoc(colRef,
{
data: data.value <--placeholder
});
});
} catch {
}
//code to run after addDoc is done, but it runs immediately
$q.dialog({
[content]
})
};
更新:我已经用 .then 函数更改了 addDoc 函数,这似乎有效。当前的问题是,我无法在运行 addDoc 函数之前完成 uploadImage 函数。
这是我尝试承诺 uploadImage 函数,我知道这是草率且错误的:
if (image.value) {
return new Promise((resolve, reject) => {
const newImage = uploadImage(image.value);
resolve(newImage);
});
} else {
console.log("error");
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
只有当您的
uploadImage()和addDoc()函数返回 JavaScript 承诺。请参阅来自nodejs.dev的这篇文章有关 async/await 的更多信息。