       if hasOwnProperty.call(_cache, id)
         _cache[id]
     isExpired: isExpired = (id)->
-      if cleanInterval > 0 and Date.now() - lastCleanTime >= clearExpires
+      if cleanInterval > 0 and Date.now() - lastCleanTime >= cleanInterval
         setImmediate clearExpires
       else
         expires = _cacheExpired[id]

        callback.call thisArg, v, k, cache
      return
    forEachLRU: forEachLRU=(callback, thisArg)->
      setImmediate clearExpires if cleanInterval > 0 and Date.now() - lastCleanTime >= clearExpires
      for k,v of _cacheLRU
        callback.call thisArg, v, k, cache if not isExpired k
      return

    hasLRU: hasLRU= (id)->hasOwnProperty.call(_cacheLRU, id) and not isExpired(id)
    has: (id) ->hasOwnProperty.call(_cache, id) or hasLRU(id)
    deleteLRU: (id)->
      setImmediate clearExpires if cleanInterval > 0 and Date.now() - lastCleanTime >= cleanInterval
      if hasOwnProperty.call(_cacheLRU, id)
        result = _cacheLRU[id]
        delete _cacheLRU[id]
