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 )
] ) . /* ... */