Tag: 记忆

在Javascript中caching和预取过期的承诺

承诺是我在JavaScript中pipe理我的asynchronous代码的首选方式。 Memoize(npm上的memoizee)是一个Javascript库,用于轻松caching和预取函数的结果。 理想情况下,我想结合两者中的优点,并有能力“超期”承诺并预先获取新的Promise结果(当caching被触摸并即将到期时)。 Memoize可以做到这一点,但它不是build立在Promise的基础上。 (我知道Promise有一个内置的“永久caching”,就像它们的本质一样,但是对于我的应用来说永远太长了) 我迄今为止做的最好的尝试如下(使用蓝鸟 , memoize和下划线的 node.js示例): var memoize = require('memoizee') , Promise = require('bluebird') , _ = require('underscore') ; // returns a memoized Promise-generating function function memoizePromiser(funcReturningPromise, options) { var opts = _.defaults(options || {}, {async: true}); return Promise.promisify(memoize(function(){ var args = _.initial(arguments); var cb = _.last(arguments); funcReturningPromise.apply(this, args).nodeify(cb); }, opts)); }; […]