【发布时间】:2020-09-26 11:26:15
【问题描述】:
我正在尝试这个备忘录
function getData(n, m, callback){
callback(n+m);
};
let memoizedData = memoize(getData);
console.log(memoizedData(5, 4, (result)=>{})) // 9;
我想缓存结果,即 9,所以每当下次调用发生时,它都会从缓存中获取。 如果 getData 将返回 n+m 而不是放入回调,我理解记忆。 任何帮助将不胜感激。
编辑:想通过 vanillaJs 来实现。 为更清楚起见,编辑了上述问题
function getData(n, m, callback){
callback(n+m);
};
let memoizedData = memoize(getData);
memoizedData(5, 4, (result)=>{console.log(result)}) // 9;
memoizedData(5, 4, (result)=>{console.log(result)}) // 9 - returned from cache
【问题讨论】:
-
有没有写函数
memoize的尝试?您在尝试时遇到了什么问题?当getData不返回任何内容而是调用回调时,您为什么期望console.log打印任何有用的信息? -
我没完全理解,但是你在寻找如何实现记忆吗?
-
是的,我尝试过,但遇到了回调问题。 @trincot
-
是的,带有这个回调的东西。我能够通过返回 n+m 的 getSomeData 实现相同的功能。 @GermanOchea