Future
Future
는 SurrealDB의 Futures 기능을 나타내는 클래스입니다.
import
import { Future } from "@tai-kun/surrealdb/decodeonly-datatypes";import { Future } from "@tai-kun/surrealdb/encodable-datatypes";import { Future } from "@tai-kun/surrealdb/standard-datatypes";
.constructor()
새로운 Future
객체를 생성합니다.
new Future(source: string);
매개변수
source
future 블록 내의 값 또는 식입니다.
반환값
new
를 통해 호출될 경우, Future
는 해당 인스턴스를 반환합니다.
.block
인스턴스 속성 >=decode-only
future 블록 내의 값 또는 식입니다.
.block: number;
.toString()
인스턴스 메서드 >=encodable
Future
객체를 문자열로 변환합니다.
.toString(): string;
매개변수
없음.
반환값
future 블록 내의 값 또는 식을 반환합니다.
예시
import { Future } from "@tai-kun/surrealdb/encodable-datatypes";
const future = new Future(`time::now()`);console.log(future.toString());//-> time::now()
.toSurql()
인스턴스 메서드 >=encodable
Future
객체를 SurrealQL에 포함할 수 있는 문자열로 변환합니다. .toString()
과 유사하지만, 블록은 중괄호({}
)로 둘러싸여 있으며 <future>
로 캐스팅됩니다.
.toSurql(): string;
매개변수
없음.
반환값
SurrealQL에 포함할 수 있는 future를 반환합니다.
예시
import { Future } from "@tai-kun/surrealdb/encodable-datatypes";
const future = new Future(`time::now()`);console.log(future.toSurql());//-> <future>{time::now()}
.surql()
정적 메서드 =standard
이 메서드는 SurrealQL 작성을 지원합니다. 템플릿 리터럴을 사용하여 SurrealQL을 작성할 수 있습니다. 템플릿 리터럴에 포함된 값은 자동으로 SurrealQL로 변환됩니다. 또한 VSCode에서 SurrealDB 공식 확장 기능을 설치한 경우, 템플릿 리터럴의 구문 강조 표시가 활성화됩니다.
.surql(texts: TemplateStringsArray, ...values: unknown[]): string;
매개변수
texts
템플릿 리터럴을 구성하는 문자열 배열입니다.
values
texts
의 각 요소 사이에 삽입할 값입니다.
반환값
SurrealQL입니다.
예시
import { Future, Thing } from "@tai-kun/surrealdb/standard-datatypes";
const foo = "foo";const rid = new Thing("person", "tai-kun");const future = new Future(Future.surql` LET $a = ${foo} + ${Future.raw("'-'")}; LET $b = type::string(${rid}); string::concat($a, $b)`);console.log(future.toSurql());//-> <future>{//-> LET $a = 'foo' + '-';//-> LET $b = type::string(r'person:⟨tai-kun⟩');//-> string::concat($a, $b)//-> }
위의 예시를 .surql()
을 사용하지 않으면 다음과 같습니다.
import { Future, Thing } from "@tai-kun/surrealdb/standard-datatypes";import { toSurql } from "@tai-kun/surrealdb/utils";
const foo = "foo";const rid = new Thing("person", "tai-kun");const future = new Future(/*surql*/ ` LET $a = ${toSurql(foo)} + ${"'-'"}; LET $b = type::string(${rid.toSurql()}); string::concat($a, $b)`);console.log(future.toSurql());//-> <future>{//-> LET $a = 'foo' + '-';//-> LET $b = type::string(r'person:⟨tai-kun⟩');//-> string::concat($a, $b)//-> }
- 문자열이나 객체를
toSurql
헬퍼 함수나.toSurql()
메서드를 사용하여 SurrealQL로 변환해야 합니다. Future.raw
를 사용하지 않고 문자열을 SurrealQL에 포함할 수 있습니다.
추가 정보
Future
객체의 일반적인 판별
프리셋에 의존하지 않고 값이 Future
객체인지 판별하려면 isFuture
함수를 사용하는 것이 좋습니다. 이 함수는 instanceof
를 사용하지 않으므로, 검증할 값의 프리셋이 불명확한 경우에 유용합니다.
import { isFuture } from "@tai-kun/surrealdb";