provide(computer, callback) {
		this.get((err, cacheEntry) => {
			if (err) return callback(err);
			if (cacheEntry !== undefined) return cacheEntry;
			computer((err, result) => {
				if (err) return callback(err);
				this.store(result, err => {
					if (err) return callback(err);
					callback(null, result);
				});
			});
		});
	}
@template T
@param {(callback: CallbackNormalErrorCache<T>) => void} computer function to compute the value if not cached
@param {CallbackNormalErrorCache<T>} callback signals when the value is retrieved
@returns {void}