[英]Uncaught SyntaxError: await is only valid in async function in async function
[英]Uncaught SyntaxError: await is only valid in async function (FireBase documentation)
我正在嘗試從 Firestore 數據庫中獲取數據。 基於Firestore 文檔,我寫了這個:
const productsRef = db.collection('products');
const snapshot = await productsRef.get();
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
我收到標題中的錯誤。 為什么他們共享不起作用的代碼或者我錯過了什么? 謝謝!
您需要一個async
函數才能使用await
關鍵字。
如果您沒有運行此代碼的函數,您可以使用 IIFE 包裝器
(async ()=>{
const productsRef = db.collection('products');
const snapshot = await productsRef.get();
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
})();
或者根本不使用 await 並將其處理到then
鏈中:
const productsRef = db.collection('products');
const snapshot = productsRef.get().then((snapshot)=>{
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
});
await
關鍵字與async
一起用於消費承諾。 但是為了讓 await 工作,您必須將它包裝在一個用async
關鍵字聲明的函數中,如下所示:
const getProducts = async () => {
const productsRef = db.collection('products');
const snapshot = await productsRef.get();
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
}
getProducts();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.