在异步函数之外使用 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