AbortSignal va AbortController
AbortSignal/AbortController interfacelari async operasiyalarni tohtatish uchun ishlatiladi. Masalan, juda ko'p ishlatiladigan fetch() funksiya RequestInit parameter(object)ga signal nomli property kutadi (optional) va biz bu propertyga AbortSignal instance berishimiz mumkin. Va keyinroq bu AbortController instancening .abort() methodini chaqirib requestni tohtatishimiz mumkin.
AbortSignal qabul qiladigan APIlar:
- Fetch
- EventTarget API
- ReadableStream/WritableStream
- WebSocket
AbortSignal instance odatda AbortControllerda saqlanadi, uni new AbortController() qilib yaratamiz, lekin uni AbortSignal static methodlari orqali ham yaratishimiz mumkin. Bular:
- AbortSignal.abort() - Allaqachon abort qilingan instance yaratadi.
- AbortSignal.any() - Parameterga AbortSignallardan tashkil topgan iterable oladi va ulardan biri abort bolganda bu ham abort boladi.
- AbortSignal.timeout() - Parameterda berilgan millisekund qiymatda avtomat abort boladigan instance qaytaradi (Backenddan kutilayotgan javobga timeout qoyish uchun juda qulay)
AbortSignal/AbortController interfacelari async operasiyalarni tohtatish uchun ishlatiladi. Masalan, juda ko'p ishlatiladigan fetch() funksiya RequestInit parameter(object)ga signal nomli property kutadi (optional) va biz bu propertyga AbortSignal instance berishimiz mumkin. Va keyinroq bu AbortController instancening .abort() methodini chaqirib requestni tohtatishimiz mumkin.
AbortSignal qabul qiladigan APIlar:
- Fetch
- EventTarget API
- ReadableStream/WritableStream
- WebSocket
AbortSignal instance odatda AbortControllerda saqlanadi, uni new AbortController() qilib yaratamiz, lekin uni AbortSignal static methodlari orqali ham yaratishimiz mumkin. Bular:
- AbortSignal.abort() - Allaqachon abort qilingan instance yaratadi.
- AbortSignal.any() - Parameterga AbortSignallardan tashkil topgan iterable oladi va ulardan biri abort bolganda bu ham abort boladi.
- AbortSignal.timeout() - Parameterda berilgan millisekund qiymatda avtomat abort boladigan instance qaytaradi (Backenddan kutilayotgan javobga timeout qoyish uchun juda qulay)