cache.put add promise support