컨텐츠로 건너뛰기

makeAbortApi

makeAbortApi는 중단 신호와 관련 중단 함수를 생성하는 함수입니다.

import

import { makeAbortApi } from "@tai-kun/surrealdb/utils";

사용법

function makeAbortApi(signal?: AbortSignal): [
signal: AbortSignal,
abort: (reason?: unknown) => void,
];

인수

signal

연결할 중단 신호입니다.

반환값

다음 순서로 정렬된 배열을 반환합니다.

signal

중단 신호입니다. 초기 상태에서는 중단되지 않습니다.

abort

중단 신호에 "abort" 이벤트를 전송합니다. 선택적으로 하나의 인수 reason을 받을 수 있으며, "abort" 이벤트를 통해 중단 사유를 전달할 수 있습니다.

예시

다음 예시는 인수 없이 Abort API를 생성합니다.

import { makeAbortApi } from "@tai-kun/surrealdb/utils";
const [signal, abort] = makeAbortApi();
abort();

위 예시는 new AbortController()와 거의 같은 의미를 가집니다. AbortController와 다른 점은 makeAbortApi가 객체가 아닌 배열을 반환한다는 점입니다.

다음 예시는 연결할 중단 신호를 지정하여 Abort API를 생성합니다.

import { makeAbortApi } from "@tai-kun/surrealdb/utils";
const controller = new AbortController();
controller.signal.addEventListener("abort", function() {
console.log("controller.signal", this.reason);
});
const [signal] = makeAbortApi(controller.signal);
signal.addEventListener("abort", function() {
console.log("signal", this.reason);
});
controller.abort("test");

출력:

controller.signal test
signal test

중단 이벤트는 Abort API에서 중단하더라도 연결된 중단 신호로 전파됩니다.

import { makeAbortApi } from "@tai-kun/surrealdb/utils";
const controller = new AbortController();
controller.signal.addEventListener("abort", function() {
console.log("controller.signal", this.reason);
});
const [signal, abort] = makeAbortApi(controller.signal);
signal.addEventListener("abort", function() {
console.log("signal", this.reason);
});
abort("test");

출력:

controller.signal test
signal test