wretch
패키지에 통합되었습니다.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 ( )
} )
] ) . /* ... */
오류가 발생한 경우(또는 사용자 지정 조건이 true가 될 때까지) 요청을 여러 번 재시도합니다.
milliseconds
각 시도 사이의 타이머입니다.
(delay, nbOfAttempts) => milliseconds
타이머 및 시도 횟수를 기반으로 실제 지연을 계산하는 데 사용되는 사용자 정의 기능입니다.
number
마지막 오류가 발생한 Promise를 해결하기 전의 최대 재시도 횟수입니다. 0을 지정하면 무한 재시도를 의미합니다.
(fetchResponse, error) => boolean | Promise<boolean>
해당 조건이 충족될 때까지 요청이 재시도됩니다.
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>
요청을 재시도하기 전에 실행될 콜백입니다. 이 함수가 url 및/또는 옵션 속성이 있는 객체를 반환하는 경우 재시도된 요청의 기존 값을 재정의합니다. Promise를 반환하면 요청을 재시도하기 전에 대기하게 됩니다.
boolean
true인 경우 네트워크 오류가 발생한 경우 요청을 다시 시도합니다. 또한 onRetry
및 until
메소드에 'error' 인수를 제공합니다.
(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
true인 경우 캐시를 지웁니다.
(url, opts) => string | RegExp | Array<string | RegExp> | null
캐시에서 문자열 또는 RegExp와 일치하는 URL을 제거합니다. 배열을 사용하여 여러 값을 무효화할 수 있습니다.
response => boolean
false이면 응답이 캐시에 추가되지 않습니다.
string
설정된 경우 캐시에서 반환된 응답은 이 옵션과 동일한 속성 이름으로 플래그가 지정됩니다.
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 )
] ) . /* ... */