Вам понадобится обратный вызов или обещание в качестве параметра. Вот, возможно, более простой способ:
Вспомогательная функция:
get(key, retrieveData) {
const value = this.cache.get(key);
if (value) {
return value;
}
const data = retrieveData()
this.cache.set(key, data);
return data;
}
Затем вы можете использовать:
const result = get('some-key', () => someModel.find(id))
return result
Несмотря на использование обратного вызова, он все еще чистый. Не нужно усложнять ваш код обещаниями, если они вам не нужны.