首页 > 解决方案 > 真的不可能在自己的范围之外使用 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

有什么办法可以做到这一点?我觉得我已经如此接近了很多次,但总是有一些陷阱。

标签: javascriptreactjsasync-awaitlocalforage

解决方案


推荐阅读