javascript - 真的不可能在自己的范围之外使用 Promise 的解析值吗?
问题描述
我在用于缓存和返回数据的自定义 React 挂钩中使用 localforage。如果数据已经存在,则返回它。如果数据不存在,则将其缓存然后返回。在我使用同步 LRU 库之前,但 IndexedDB 的异步特性似乎使这变得更加困难。
截至目前,自定义钩子正在返回一个带有解析值的承诺,我需要在我的一个组件中访问该值。数据就在那里,但我无法得到它。我尝试过混合使用 async/await、生成器和 SE 线程,但我想我会使用这个片段来发布。
这是从自定义钩子接收承诺的组件的精简版本
const Component = ({ match }) => {
let data = useSuspenseFetch(match.params.id)
.then(res => {
console.log('need this', res)
return res
})
console.log('right here', data)
return <></>
}
export default Component
有什么办法可以做到这一点?我觉得我已经如此接近了很多次,但总是有一些陷阱。
解决方案
推荐阅读
- django - 无法将 django 连接到在 docker 容器内运行的 postgres
- sql - 如何计算每个州的基尼系数(例如外部来源)?
- typescript - `Exact 的目的是什么
` @graphql-codegen 创建的类型? - angular - 如何用角度实现有状态(REST API)?
- javascript - 用 $ 字符替换字符串中的所有数字
- python-3.x - 如何在不停止 while 循环的情况下运行 time.sleep()
- javascript - 在odoo 14中更改字段值后显示确认对话框
- python - 某些应用程序按钮仅在鼠标移动后可用
- c# - 如何使矩形停留在图片框上的某个位置并缩放
- azure-devops - 从 Azure kubernetes 集群中托管的 grafana 发送电子邮件警报