wretch mulai dari celaka v2.0.0npm i wretch-middlewares <!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >| Dedupe | Mencoba kembali | Pembatasan cache | Menunda |
|---|
Mencegah beberapa permintaan identik dengan cepat pada saat yang bersamaan.
(url, opts) => booleanJika skip menghasilkan nilai true, maka pemeriksaan dedupe dilewati.
(url, opts) => stringMengembalikan kunci yang digunakan untuk mengidentifikasi permintaan.
(response: Response) => ResponseFungsi ini dipanggil ketika menyelesaikan respons pengambilan dari panggilan duplikat. Secara default, ini mengkloning respons untuk memungkinkan pembacaan isi dari berbagai sumber.
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 ( )
} )
] ) . /* ... */ Mencoba kembali permintaan beberapa kali jika terjadi kesalahan (atau hingga kondisi khusus benar).
millisecondsPengatur waktu di antara setiap upaya.
(delay, nbOfAttempts) => millisecondsFungsi khusus yang digunakan untuk menghitung penundaan sebenarnya berdasarkan pengatur waktu & jumlah upaya.
numberJumlah maksimum percobaan ulang sebelum menyelesaikan janji dengan kesalahan terakhir. Menentukan 0 berarti percobaan ulang tanpa batas.
(fetchResponse, error) => boolean | Promise<boolean>Permintaan akan dicoba ulang hingga kondisi tersebut terpenuhi.
({ response, error, url, options }) => { url?, options? } || Promise<{url?, options?}>Panggilan balik yang akan dieksekusi sebelum mencoba kembali permintaan tersebut. Jika fungsi ini mengembalikan objek yang memiliki properti url dan/atau opsi, mereka akan mengganti nilai yang ada dalam permintaan yang dicoba ulang. Jika mengembalikan Janji, maka akan ditunggu sebelum mencoba kembali permintaan tersebut.
boolean Jika benar, akan mencoba ulang permintaan jika terjadi kesalahan jaringan. Juga akan memberikan argumen 'kesalahan' pada metode onRetry dan until .
(response: Response) => ResponseFungsi ini dipanggil ketika menyelesaikan respons pengambilan dari panggilan duplikat. Secara default, ini mengkloning respons untuk memungkinkan pembacaan isi dari berbagai sumber.
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'
)
} )
] ) Cache pembatasan yang menyimpan dan menyajikan respons server selama jangka waktu tertentu.
millisecondsResponsnya akan disimpan selama jangka waktu tersebut sebelum dihapus dari cache.
(url, opts) => booleanJika skip menghasilkan nilai true, maka pemeriksaan dedupe dilewati.
(url, opts) => stringMengembalikan kunci yang digunakan untuk mengidentifikasi permintaan.
(url, opts) => booleanMenghapus cache jika benar.
(url, opts) => string | RegExp | Array<string | RegExp> | nullMenghapus url yang cocok dengan string atau RegExp dari cache. Dapat menggunakan array untuk membatalkan beberapa nilai.
response => booleanJika salah maka respon tidak akan ditambahkan ke cache.
string flagResponseOnCacheHitJika disetel, Respons yang dikembalikan dari cache akan ditandai dengan nama properti yang sama dengan opsi ini.
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'
} )
] ) . /* ... */ Menunda permintaan selama jangka waktu tertentu.
millisecondsPermintaan akan tertunda selama jangka waktu tersebut.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */