摘要:地址用于通过缓存具有相同输入的调用结果来加速连续函数调用的优化普通用法支持基于的异步函数调用第二参数用法用法设置缓存时长,默认默认所有参数相同才启用缓存数据,但你也可以设置只缓存第一个参数也就是只要第一个参数相同,就采用缓存值设置缓存方式,
[github地址:https://github.com/ABCDdouyae...]
mem用于通过缓存具有相同输入的调用结果来加速连续函数调用的优化
const mem = require("mem"); let i = 0; let a = () => i++; let mem_a = mem(a); mem_a(); console.log(i);//1 mem_a(); console.log(i);//1 mem_a(10); console.log(i);//2 mem_a(); console.log(i);//2 mem_a(11); console.log(i);//3
let b = async () => j++; let mem_b = mem(b); (async ()=> { await mem_b(); console.log(j);//1 await mem_b(); console.log(j);//1 await mem_b(10); console.log(j);//2 })();
用法:mem(Function, options|object)
maxAge:设置缓存时长,默认infinity
const mem = require("mem"); const got = require("got"); const delay = require("delay"); const memGot = mem(got, {maxAge: 1000}); (async () => { await memGot("sindresorhus.com"); // This call is cached await memGot("sindresorhus.com"); await delay(2000); // This call is not cached as the cache has expired await memGot("sindresorhus.com"); })();
cacheKey:默认所有参数相同才启用缓存数据,但你也可以设置只缓存第一个参数(也就是只要第一个参数相同,就采用缓存值)
let c = (a, b) => k++; let mem_c = mem(c); mem_c(1, 2); console.log(k);//1 mem_c(1, 3); console.log(k);//2 mem_c(1, 3); console.log(k);//2 let d = (a, b) => l++; let mem_d = mem(d, {cacheKey: x => JSON.stringify(x)}); mem_d(1, 2); console.log(l);//1 mem_d(1, 3); console.log(l);//1 mem_d(2, 3); console.log(l);//2
cache:设置缓存方式,默认new Map(),例如.has(key), .get(key), .set(key, value), .delete(key), and optionally .clear(). You could for example use a WeakMap instead or quick-lru for a LRU cache.
cachePromiseRejection:缓存promise的reject的返回,默认为false
mem.clear(fn):清除某个函数的缓存数据
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99518.html
摘要:地址用于通过缓存具有相同输入的调用结果来加速连续函数调用的优化普通用法支持基于的异步函数调用第二参数用法用法设置缓存时长,默认默认所有参数相同才启用缓存数据,但你也可以设置只缓存第一个参数也就是只要第一个参数相同,就采用缓存值设置缓存方式, [github地址:https://github.com/ABCDdouyae...] mem 用于通过缓存具有相同输入的调用结果来加速连续函数调...
摘要:地址用于通过缓存具有相同输入的调用结果来加速连续函数调用的优化普通用法支持基于的异步函数调用第二参数用法用法设置缓存时长,默认默认所有参数相同才启用缓存数据,但你也可以设置只缓存第一个参数也就是只要第一个参数相同,就采用缓存值设置缓存方式, [github地址:https://github.com/ABCDdouyae...] mem 用于通过缓存具有相同输入的调用结果来加速连续函数调...
摘要:问题中如何将在十进制和二八十六进制之间互相转换解决方案十进制向二八十六进制转换分别使用这样转换会有一个前缀,如果不想要前缀只想要数值的话,可以使用二八十六进制向十进制转换直接使用即可,因为的原型是,所以我们只需要指定就行了讨论如果只是需要在 问题 Python中如何将int在十进制和二、八、十六进制之间互相转换 解决方案 十进制向二、八、十六进制转换 分别使用bin、oct、hex >...
摘要:地址源码依赖一个对象的属性继承另一个对象的属性及其属性描述符用法继承者,被继承者是否继承者有该属性的时候继承默认不继承返回继承后的新的对象当第三个参数为时候,原对象又该属性则没有继承被继承者的属性和属性描述符 [github地址:https://github.com/ABCDdouyae...] merge-descriptors (express源码依赖) 一个对象的属性继承另一个对...
阅读 2784·2021-09-01 10:30
阅读 1679·2019-08-30 15:52
阅读 964·2019-08-29 18:40
阅读 1115·2019-08-28 18:30
阅读 2391·2019-08-23 17:19
阅读 1321·2019-08-23 16:25
阅读 2699·2019-08-23 16:18
阅读 2977·2019-08-23 13:53