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 testsignal 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 testsignal test