-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
Надо подумать нужна ли из коробки дедупликация запросов.
Вариант 1:
// Готовый враппер uniqBlockDecorator.js
const de = require('descript');
module.exports = block => {
const UNIQ_BLOCK_ID = Symbol();
return de.func({
block: (args) => {
const { context } = args;
if (!context[UNIQ_BLOCK_ID]) {
context[UNIQ_BLOCK_ID] = de.run(block, args);
}
return context[UNIQ_BLOCK_ID];
},
});
};
const uniqBlock = uniqBlockDecorator(de.func({
block: () => {
// в рамках одного de.run этот блок исполнится ровно один раз,
// все последующие вызовы будут возвращать результат из памяти
},
});Вариант 2:
Сделать по умолчанию все блоки с дедупликаций и opt out через options.dedupe === false
Вариант 3:
inmemory cache, но его надо делать в рамках de.run. Похоже на вариант 1, только через более нативный кеш, и решает вопрос с ключами.
Metadata
Metadata
Assignees
Labels
No labels