Asosiy mazmunga oʻtish

Xatolar ​

Nima boʻldiNima olasiz
Kod mavjud emas, get()danull
Hech narsa topilmadi, search(), filter(), dvCert()daBoʻsh sahifa
API xato yoki JSON boʻlmagan javob qaytardiMxikError
Soʻrov timeoutdan uzoq davom etdiTimeoutError nomli DOMException
Soʻrov signal orqali bekor qilindiAbortError nomli DOMException
Tarmoq yoʻq, DNS xatosi, ulanish rad etildifetchdan TypeError

“Topilmadi” xato emas, shuning uchun try faqat qolgan holatlar uchun kerak.

MxikError ​

ts
import { MxikError } from 'mxik'

try {
  await mxik.search('кофе')
}
catch (error) {
  if (error instanceof MxikError) {
    error.status // HTTP status
    error.reason // API xabari, agar yuborgan boʻlsa
  }
}

API koʻpincha xato haqida HTTP 200 statusi va javob tanasida success: false bilan xabar beradi. Bunda status 200ga teng, haqiqiy xabar esa reasonda boʻladi.

Taymautlar va bekor qilish ​

Standart boʻyicha soʻrov 10 soniyadan keyin toʻxtatiladi. Buni mijoz uchun oʻzgartirish mumkin:

ts
const mxik = createMxik({ timeout: 3000 })

Yoki alohida soʻrovni oʻzingiz bekor qiling, masalan foydalanuvchi keyingi harfni kiritganda:

ts
let controller: AbortController | undefined

async function onInput(query: string) {
  controller?.abort()
  controller = new AbortController()

  try {
    const { items } = await mxik.search(query, { signal: controller.signal })
    render(items)
  }
  catch (error) {
    if (error instanceof DOMException && error.name === 'AbortError')
      return
    throw error
  }
}

Taymaut ham, sizning signalʼingiz ham oddiy fetch kabi DOMException chiqaradi.

Norasmiy mijoz, Oʻzbekiston Soliq qoʻmitasi va tasnif.soliq.uz bilan bogʻliq emas.
MIT litsenziyasi asosida tarqatiladi.