전역 변수
씬 런타임은 샌드박스된 JavaScript 환경 안에서 특정 객체와 함수의 존재를 보장하며, 다음과 같은 표준 유틸리티들에 더해 Promise, Date 또는 Math.
전역 객체
런타임은 씬의 전역 범위에 6개의 정의를 주입합니다:
console: 일반적인 것의 단순화된 버전console객체.exports: 씬이 그 자체의 공개 인터페이스를 추가할 수 있는 객체.모듈: 다음을 담는 컨테이너exports객체.require: 이름으로 런타임이 제공하는 모듈을 불러오는 함수.fetch: 브라우저의 제한된 구현체fetch함수.WebSocket: 브라우저의 제한된 구현체WebSocket클래스.
이들 모두는 읽기 전용 속성으로 정의되므로 재할당할 수 없습니다. 일부는 특정 권한 권한이 씬에 부여되지 않으면 사용 시 예외를 발생시킵니다.
콘솔
씬은 다음에 접근할 수 있습니다: console 객체로, 브라우저나 Node 환경에서 제공되는 것과 비슷하지만, 일반적으로 볼 수 있는 메서드 중 일부만 사용할 수 있습니다.
type Console = {
log(...args: any): void
info(...args: any): void
debug(...args: any): void
warning(...args: any): void
error(...args: any): void
}표준 대응 항목과 마찬가지로, 각 메서드는 임의 타입의 가변 인수를 받고 이를 사람이 읽을 수 있는 메시지로 렌더링합니다. 예를 들면, 다음은 유효합니다:
이 메서드들의 정확한 동작은 제공자에 따라 다르지만, 메시지는 자신의 코드를 디버깅하는 씬 개발자가 접근할 수 있어야 합니다.
임포트 및 익스포트
씬은 전통적인 CommonJS 모듈 인터페이스를 사용해 객체를 임포트하고 익스포트할 수 있습니다.
이 require 함수는 씬이 런타임이 제공하는 모듈(예: EngineApi 또는 RestrictedActions), 그리고 그 외에는 아무것도 접근할 수 없습니다(이 함수는 NPM 패키지나 경로 기반 모듈에 접근하지 않습니다).
다음에 추가된 속성들은 exports 객체는 씬의 공개 인터페이스이며 런타임에 노출됩니다. 실제로 씬은 반드시 올바르게 실행되기 위해 최소한 하나의 메서드를 노출해야 합니다(참조: 실행).
HTTP 및 WebSocket
이 fetch 및 WebSocket 전역 객체는 널리 알려진 대응 항목과 정확히 동일하게 동작합니다(참조: fetch 및 WebSocket MDN), 다만 런타임이 적용하는 몇 가지 제한이 있습니다.
다음을 호출할 때: fetch 함수:
URL이 다음으로 시작하지 않으면 오류가 발생합니다:
https://.씬에 다음이 없으면 오류가 발생합니다:
USE_FETCH권한.구현에 따라 정의된 타임아웃이 요청을 중단할 수 있습니다.
다음을 사용할 때: WebSocket 클래스:
URL이 다음으로 시작하지 않으면 오류가 발생합니다:
wss:씬에 다음이 없으면 오류가 발생합니다:
USE_WEBSOCKET권한.
이러한 차이점을 제외하면, 두 경우 모두 표준 동작을 따릅니다.
마지막 업데이트