在方法上缓存计算结果

前端想在方法上直接缓存结果,这种写法合适吗?

const fetchData = function(){
    if(!fetchData.__cache){
        fetchData.__cache = fetch('http://example.com');
    }
    return fetchData.__cache;    
}
阅读 1.7k
2 个回答

如果数据不需要更新,这个操做也是可以的

对于一次加载后、整个会话过程中都不需要更新的数据(比如省市区地址列表这种,没必要每次实时拉新的,因为变化的几率实在太小了),这么干没问题。

如果觉得这么写不是很优雅的话,可以用 Lodash 库中有一个 _.memorize 方法,就是专门干这个事儿的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题