Skip to content

CancelledResult

import type { CancelledResult } from '@kairo-js/router'

호출이 취소되었을 때 router.request()의 반환값입니다. Promise는 reject되지 않고 이 값으로 resolve됩니다.

typescript
type CancelledResult = {
  readonly cancelled: true
  readonly reason:
    | 'ADDON_NOT_FOUND'
    | 'ADDON_INACTIVE'
    | 'ADDON_UNRESOLVED'
    | 'CANCELLED_BY_HOOK'
}

필드

cancelled

readonly cancelled: true

항상 true입니다. 타입 가드로 사용하십시오.


reason

readonly reason: string

호출이 취소된 이유입니다.


reason 값

reason설명
ADDON_NOT_FOUND대상 addonId가 라우팅 테이블에 존재하지 않습니다.
ADDON_INACTIVE대상 애드온이 비활성 상태입니다.
ADDON_UNRESOLVED대상 애드온이 미해결 상태입니다 (의존성이 아직 해결되지 않았습니다).
CANCELLED_BY_HOOKbefore 훅이 ctx.cancel()을 호출하여 호출을 취소했습니다.

사용 예시

typescript
const result = await router.request<{ balance: number }>(
  'economy-addon',
  'economy/getBalance',
  { playerId: 'abc123' },
)

if ('cancelled' in result) {
  switch (result.reason) {
    case 'ADDON_NOT_FOUND':
      console.warn('economy-addon not found')
      break
    case 'ADDON_INACTIVE':
      console.warn('economy-addon is currently inactive')
      break
    case 'CANCELLED_BY_HOOK':
      console.warn('Call was cancelled by a hook')
      break
    default:
      console.warn('Call cancelled:', result.reason)
  }
} else {
  console.log('Balance:', result.balance)
}

Released under the MIT License.