Rumah > Soal Jawab > teks badan
Diedit untuk menambah soalan di bahagian bawah: Pada masa ini, ia berjalan dengan baik, cuma ia tidak berjalan secara tidak segerak (saya fikir itulah sebabnya async menunggu sedang mencuba).
Soalan saya ialah bagaimana untuk menjadikan proses penyerahan tidak segerak supaya saya hanya boleh melakukan tindakan selepas memuat naik maklumat (dalam kes ini menggesa pengguna untuk memilih langkah seterusnya).
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] }) };
Kemas kini: Saya telah menukar fungsi addDoc dengan fungsi .then dan ini nampaknya berfungsi. Masalah semasa ialah saya tidak dapat melengkapkan fungsi uploadImage sebelum menjalankan fungsi addDoc.
Ini adalah percubaan saya untuk melakukan fungsi muat naikImej, yang saya tahu adalah ceroboh dan salah:
if (image.value) { return new Promise((resolve, reject) => { const newImage = uploadImage(image.value); resolve(newImage); }); } else { console.log("error"); }
P粉9869374572024-04-03 18:44:04
Hanya jika fungsi uploadImage()
和 addDoc()
anda mengembalikan janji JavaScript.
Lihat artikel inidari nodejs.dev untuk mendapatkan maklumat lanjut tentang async/menunggu.