wretch
หลักโดยเริ่มจาก wretch v2.0.0npm i wretch-middlewares
<!-- Global variable name : window.wretchMiddlewares -->
< script src =" https://unpkg.com/wretch-middlewares " > </ script >
ลบข้อมูลซ้ำซ้อน | ลองอีกครั้ง | แคชการควบคุมปริมาณ | ล่าช้า |
---|
ป้องกันไม่ให้มีคำขอที่เหมือนกันหลายรายการพร้อมกัน
(url, opts) => boolean
หากการข้ามส่งกลับค่าจริง แสดงว่าการตรวจสอบการซ้ำซ้อนจะถูกข้ามไป
(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
หากการข้ามส่งกลับค่าจริง แสดงว่าการตรวจสอบการซ้ำซ้อนจะถูกข้ามไป
(url, opts) => string
ส่งกลับคีย์ที่ใช้ในการระบุคำขอ
(url, opts) => boolean
ล้างแคชหากเป็นจริง
(url, opts) => string | RegExp | Array<string | RegExp> | null
ลบ URL ที่ตรงกับสตริงหรือ RegExp ออกจากแคช สามารถใช้อาร์เรย์เพื่อทำให้ค่าหลายค่าเป็นโมฆะได้
response => boolean
หากเป็นเท็จ การตอบสนองจะไม่ถูกเพิ่มลงในแคช
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 )
] ) . /* ... */