wretch , начиная с версии Wretch v2.0.0.npm i wretch-middlewares <!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >| Дедуп | Повторить попытку | Регулирование кэша | Задерживать |
|---|
Предотвращает одновременное выполнение нескольких одинаковых запросов на лету.
(url, opts) => booleanЕсли пропуск возвращает true, проверка дедупликации пропускается.
(url, opts) => stringВозвращает ключ, который используется для идентификации запроса.
(response: Response) => ResponseЭта функция вызывается при разрешении ответа на выборку из повторяющихся вызовов. По умолчанию он клонирует ответ, чтобы можно было прочитать тело из нескольких источников.
import wretch from 'wretch'
import { dedupe } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
dedupe ( {
/* Options - defaults below */
skip : ( url , opts ) => opts . skipDedupe || opts . method !== 'GET' ,
key : ( url , opts ) => opts . method + '@' + url ,
resolver : response => response . clone ( )
} )
] ) . /* ... */ Повторяет запрос несколько раз в случае ошибки (или до тех пор, пока не выполнится пользовательское условие).
millisecondsТаймер между каждой попыткой.
(delay, nbOfAttempts) => millisecondsПользовательская функция, которая используется для расчета фактической задержки на основе таймера и количества попыток.
numberМаксимальное количество повторов перед разрешением обещания с последней ошибкой. Указание 0 означает бесконечное количество повторов.
(fetchResponse, error) => boolean | Promise<boolean>Запрос будет повторяться до тех пор, пока это условие не будет выполнено.
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>Обратный вызов, который будет выполнен перед повторной попыткой запроса. Если эта функция возвращает объект, имеющий свойства URL и/или параметров, они переопределят существующие значения в повторном запросе. Если он возвращает обещание, его будут ожидать перед повторной попыткой запроса.
boolean Если это правда, повторит запрос, если возникла сетевая ошибка. Также будет предоставлен аргумент «ошибка» для методов onRetry и until .
(response: Response) => ResponseЭта функция вызывается при разрешении ответа на выборку из повторяющихся вызовов. По умолчанию он клонирует ответ, чтобы можно было прочитать тело из нескольких источников.
import wretch from 'wretch'
import { retry } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
retry ( {
/* Options - defaults below */
delayTimer : 500 ,
delayRamp : ( delay , nbOfAttempts ) => delay * nbOfAttempts ,
maxAttempts : 10 ,
until : ( response , error ) => response && response . ok ,
onRetry : null ,
retryOnNetworkError : false ,
resolver : response => response . clone ( )
} )
] ) . /* ... */
// You can also return a Promise, which is useful if you want to inspect the body:
wretch ( ) . middlewares ( [
retry ( {
until : response =>
response . json ( ) . then ( body =>
body . field === 'something'
)
} )
] ) Кэш регулирования, который сохраняет и обслуживает ответы сервера в течение определенного периода времени.
millisecondsОтвет будет храниться в течение этого времени, прежде чем будет удален из кэша.
(url, opts) => booleanЕсли пропуск возвращает true, проверка дедупликации пропускается.
(url, opts) => stringВозвращает ключ, который используется для идентификации запроса.
(url, opts) => booleanОчищает кеш, если это правда.
(url, opts) => string | RegExp | Array<string | RegExp> | nullУдаляет URL-адреса, соответствующие строке или RegExp, из кеша. Можно использовать массив для признания недействительными нескольких значений.
response => booleanЕсли false, то ответ не будет добавлен в кеш.
string flagResponseOnCacheHitЕсли этот параметр установлен, ответ, возвращенный из кэша, будет помечен именем свойства, равным этому параметру.
import wretch from 'wretch'
import { throttlingCache } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
throttlingCache ( {
/* Options - defaults below */
throttle : 1000 ,
skip : ( url , opts ) => opts . skipCache || opts . method !== 'GET' ,
key : ( url , opts ) => opts . method + '@' + url ,
clear : ( url , opts ) => false ,
invalidate : ( url , opts ) => null ,
condition : response => response . ok ,
flagResponseOnCacheHit : '__cached'
} )
] ) . /* ... */ Задерживает запрос на определенное время.
millisecondsЗапрос будет задержан на это время.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */