编辑以在底部添加问题: 目前,它可以正常运行,只是它不是异步运行(我认为这是异步等待尝试的原因)。
我的问题是如何使提交流程异步,以便我可以仅在上传信息后执行操作(在本例中提示用户首选的后续步骤)。
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"); }
只有当您的
uploadImage()
和addDoc()
函数返回 JavaScript 承诺。请参阅来自nodejs.dev的这篇文章有关 async/await 的更多信息。