我想在组件卸载时取消订阅获取。
我这样获取:
const snapshot = await db.collection(`users/user/messages`);
如果互联网速度较慢,这可能需要一段时间,并且在获取完成之前,组件可能会卸载。
那么当组件卸载时如何在后台取消订阅或取消?
最佳答案
我假设您的代码实际上有一个 .get()
行尾,以便实际执行查询。
返回 Promise 的 Firestore 操作无法取消(就像几乎所有返回 Promise 的 API 一样)。 promise 最终会解决或拒绝。您无需对由此获得的任何数据执行任何操作,但 SDK 肯定会等待查询完成并获取所有数据。
如果这会给您的应用带来问题,请考虑通过对结果进行分页来获取更少的数据,并且仅在文档即将可见时加载文档。这是一项繁重的工作,但对于大型数据集来说,它可能会节省您的时间和金钱。
关于javascript - 如何取消订阅 Firestore 获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59979393/