开发者问题收集

在异步函数之外使用 await

2021-11-09
1629

我正在为一个项目使用 react + firestore 9,我一直在寻找一种检索数据以显示在我的应用程序上的方法。我发现很多人推荐这种语法:

import firebase, { db } from 'path/to/firebase';
import {collection, getDocs, getDoc, query, doc,  addDoc, deleteDoc, updateDoc} from "firebase/firestore";

// CONSULTA
const result = await getDocs(query(collection(db, 'persons')));

我的问题是关于异步函数之外的 await,我总是得到相同的错误,我通过创建一个异步函数来包装 await 来解决,如下所示:

import firebase, { db } from 'path/to/firebase';
import {collection, getDocs, getDoc, query, doc,  addDoc, deleteDoc, updateDoc} from "firebase/firestore";

// CONSULTA
const result = async() => { 
 const foo = await getDocs(query(collection(db, 'persons')));
};

那么;我能做些什么让它在异步函数之外工作,还是我注定永远将 await 包装在异步函数中?

1个回答

如果我没有错,则只能在异步函数中使用。但是您可以使用。然后(()=> {})并在其中添加逻辑,您将确保将代码在承诺后触发并定义您的数据。

情况我想您想要这样的东西

531122978

请记住,async函数始终会返回诺言,因此即使您在异步函数中包装代码,也必须使用一个。然后()最后。因此,也许您想留下来。然后是因为您不需要异步功能即可使用。然后

Thibaud
2021-11-09