wretch
a partir do wretch v2.0.0npm i wretch-middlewares
<!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >
Desduplicar | Tentar novamente | Limitando o cache | Atraso |
---|
Evita ter várias solicitações idênticas ao mesmo tempo.
(url, opts) => boolean
Se skip retornar verdadeiro, a verificação de desduplicação será ignorada.
(url, opts) => string
Retorna uma chave usada para identificar a solicitação.
(response: Response) => Response
Esta função é chamada ao resolver a resposta de busca de chamadas duplicadas. Por padrão, ele clona a resposta para permitir a leitura do corpo de múltiplas fontes.
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 ( )
} )
] ) . /* ... */
Tenta novamente uma solicitação várias vezes em caso de erro (ou até que uma condição personalizada seja verdadeira).
milliseconds
O cronômetro entre cada tentativa.
(delay, nbOfAttempts) => milliseconds
A função personalizada usada para calcular o atraso real com base no cronômetro e no número de tentativas.
number
O número máximo de novas tentativas antes de resolver a promessa com o último erro. Especificar 0 significa tentativas infinitas.
(fetchResponse, error) => boolean | Promise<boolean>
A solicitação será repetida até que essa condição seja satisfeita.
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>
Retorno de chamada que será executado antes de tentar novamente a solicitação. Se esta função retornar um objeto com propriedades url e/ou opções, eles substituirão os valores existentes na solicitação repetida. Se retornar uma promessa, será aguardado antes de tentar novamente a solicitação.
boolean
Se verdadeiro, tentará novamente a solicitação se um erro de rede for gerado. Também fornecerá um argumento de 'erro' para os métodos onRetry
e until
.
(response: Response) => Response
Esta função é chamada ao resolver a resposta de busca de chamadas duplicadas. Por padrão, ele clona a resposta para permitir a leitura do corpo de múltiplas fontes.
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'
)
} )
] )
Um cache de otimização que armazena e fornece respostas do servidor por um determinado período de tempo.
milliseconds
A resposta será armazenada por esse período de tempo antes de ser excluída do cache.
(url, opts) => boolean
Se skip retornar verdadeiro, a verificação de desduplicação será ignorada.
(url, opts) => string
Retorna uma chave usada para identificar a solicitação.
(url, opts) => boolean
Limpa o cache se for verdade.
(url, opts) => string | RegExp | Array<string | RegExp> | null
Remove URL(s) que correspondem à string ou RegExp do cache. Pode usar uma matriz para invalidar vários valores.
response => boolean
Se for falso, a resposta não será adicionada ao cache.
string
flagResponseOnCacheHitSe definido, uma resposta retornada do cache será sinalizada com um nome de propriedade igual a esta opção.
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'
} )
] ) . /* ... */
Atrasa a solicitação por um período específico.
milliseconds
A solicitação será atrasada por esse período de tempo.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */