Как вызывать
Functions.cache.getRetryCached(cache, func, ...)
Запишите его как зависимость с именем Functions.cache.getRetryCached (принятие автодополнения делает это само) и вызывайте по этому имени.
Также принимается под прежним пространством имён utils.
Что делает
Кэшировать наблюдение после того, как оно вернуло значение не nil; повторять наблюдения, весь кортеж результатов которых равен nil. Использует те же точные ключи аргументов, что и getCached.
Аргументы
| Имя | Тип | Что делает |
|---|---|---|
cache | table | nil | Кэш вычисления или nil, чтобы обойти кэширование. |
func | function | string | Функция или имя глобальной функции для вызова. |
... | any | Аргументы, передаваемые без изменений наблюдаемой функции. |
Возвращает
| 1 | ... | Все исходные результаты с сохранением позиций nil и числа возвращаемых значений. |
|---|
Издания
Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.
Не читает игровой API напрямую.
Пример
local name = Functions.cache.getRetryCached(cache, GetSpellInfo, 774)
return name ~= nilЗависимости
getCachedInternal→utils.getCachedInternal
Исходный код
Functions/cache.lua, строка 173. В игре только для чтения; «Дублировать» создаёт редактируемую копию.
Functions.cache.getRetryCached(cache, func, ...)
return getCachedInternal(cache, false, func, ...)