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) => boolean
Jika skip menghasilkan nilai true, maka pemeriksaan dedupe dilewati.
(url, opts) => string
Mengembalikan kunci yang digunakan untuk mengidentifikasi permintaan.
(response: Response) => Response
Fungsi 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).
milliseconds
Pengatur waktu di antara setiap upaya.
(delay, nbOfAttempts) => milliseconds
Fungsi khusus yang digunakan untuk menghitung penundaan sebenarnya berdasarkan pengatur waktu & jumlah upaya.
number
Jumlah 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) => Response
Fungsi 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.
milliseconds
Responsnya akan disimpan selama jangka waktu tersebut sebelum dihapus dari cache.
(url, opts) => boolean
Jika skip menghasilkan nilai true, maka pemeriksaan dedupe dilewati.
(url, opts) => string
Mengembalikan kunci yang digunakan untuk mengidentifikasi permintaan.
(url, opts) => boolean
Menghapus cache jika benar.
(url, opts) => string | RegExp | Array<string | RegExp> | null
Menghapus url yang cocok dengan string atau RegExp dari cache. Dapat menggunakan array untuk membatalkan beberapa nilai.
response => boolean
Jika 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.
milliseconds
Permintaan akan tertunda selama jangka waktu tersebut.
import wretch from 'wretch'
import { delay } from 'wretch-middlewares'
wretch ( ) . middlewares ( [
delay ( 1000 )
] ) . /* ... */