Неперехваченная синтаксическая ошибка: Неожиданное зарезервированное слово (ожидание)

# #javascript #google-cloud-firestore #async-await

Вопрос:

парни. Я использую Google Firestore для сохранения некоторых данных в базе данных. Если, например, я использую код, предоставленный Google, для замены или создания нового документа в базе данных, я получаю ошибку: Неперехваченная синтаксическая ошибка: Неожиданное зарезервированное слово. Я знаю, что проблема в том, что await можно использовать только с асинхронными функциями, но это не функции, созданные мной. Они импортируются из библиотек Firestore, и я использую код, предоставленный Google. Что здесь не так? Спасибо.

 import { doc, setDoc } from "firebase/firestore";

await setDoc(doc(db, "cities", "LA"), {
  name: "Los Angeles",
  state: "CA",
  country: "USA"
})
 

Ответ №1:

«Ожидание» только заставляет остальную часть кода ждать завершения метода.
Если вы хотите сохранить его:

 import { doc, setDoc } from "firebase/firestore";

(async function() {
  await setDoc(doc(db, "cities", "LA"), {
    name: "Los Angeles",
    state: "CA",
    country: "USA"
  })
})();
 

Если нет:

 import { doc, setDoc } from "firebase/firestore";

setDoc(doc(db, "cities", "LA"), {
  name: "Los Angeles",
  state: "CA",
  country: "USA"
});
 

Комментарии:

1. Я понимаю вашу точку зрения, но это очень запутанно, потому что код был предоставлен Google в качестве примера, и не только с помощью метода setDoc, но и со многими другими. Если ваша точка зрения верна, то почему Google использует такой код? Смотрите здесь: firebase.google.com/docs/firestore/query-data/get-data?hl=en

2. В случае с Google требуется функция ожидания, чтобы гарантировать, что функции вызываются одна за другой