我在我的 reactjs typescript 專案中使用了 firebase。我想在 firebase 中撰寫一個檔案,我正在使用它setDoc來完成這項作業。
import { doc, setDoc } from 'firebase/firestore';
setDoc(doc(database, `path`), objData)
當您檢查函式回傳時,它說Promise<...>。但是,then() catch()如果我不知道承諾在滿足/拒絕時回傳什么,我應該如何使用承諾處理程式?
uj5u.com熱心網友回復:
我對 Firebase 不是很熟悉,但環顧四周后,似乎回報只是是否setDoc()成功。所以.then()這意味著是,而.catch()意味著否。所以你真正想要的就是這樣的
import { doc, setDoc } from 'firebase/firestore';
setDoc(doc(database, `path`), objData)
.then(() => {
console.log("Successful")})
.catch((error) => {
console.log(`Unsuccessful returned error ${error}`)});
同樣,我不完全確定回傳的確切值,因為我找不到太多,但是如果給定結果值,您會將它放在.then((result) => {console.log(result)}).
uj5u.com熱心網友回復:
firebase 檔案建議使用await,因此這里有一個使用 await 和使用 finally 清理錯誤處理的完整示例。
import { doc, setDoc } from 'firebase/firestore';
async function run() {
try {
await setDoc(doc(database, `path`), objData)
} catch (e) {
console.error(e); // handle your error here
} finally {
console.log('Cleanup here'); // cleanup, always executed
}
}
run();
uj5u.com熱心網友回復:
在 Typescript 中,您不需要精確指定 Promise 回傳型別。下面是如何在 setDoc 中使用 promise 處理程式的示例:
import { doc, setDoc } from 'firebase/firestore';
setDoc(doc(database, `path`), objData)
.then((data) => {console.log('data', data);})
.catch((err) => {console.log('err', err);})
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385221.html
標籤:javascript 反应 打字稿 火力基地
