매쉬업 작성기 > 함수 > 함수 식 작성의 모범 사례
함수 식 작성의 모범 사례
다음 함수 및 위젯은 매쉬업에서 사용자 정의 JavaScript 식을 작성하는 기능을 지원합니다.
식 함수 - 값으로 평가합니다.
유효성 검사기 함수 - 부울 값으로 평가합니다.
그리드 위젯 - 그리드 셀을 편집할 때 사용자 입력을 평가합니다.
개발 목적으로만 TW.log 함수 사용
TW.log() 함수를 사용하여 매쉬업의 식과 관련된 디버그, 오류, 경고 및 정보 메시지를 로깅할 수 있습니다. 로그 메시지는 런타임에 매쉬업 로그 대화 상자에 표시됩니다. 예를 들면, 다음과 같습니다.
TW.log.debug('debug')
TW.log.error('error')
TW.log.warn('warn')
TW.log.info('info')
많은 수의 식 로깅 문이 포함된 매쉬업을 열면 매쉬업 성능이 상당한 영향을 받습니다. 매쉬업에 있는 많은 수의 로그 문을 사용하는 경우 이러한 로그 문을 라이브 생산 환경에서는 사용하지 않는 것이 좋습니다. 매쉬업을 개발하고 테스트하는 동안 로그 문을 사용할 수 있지만 매쉬업을 생산 환경에 배포하기 전에 이러한 로그 문을 주석으로 변환하거나 코드에서 이러한 로그 문을 제거해야 합니다.
런타임 디버그 콘솔 확인
식이 포함된 매쉬업을 설계했으면 런타임에 디버그 정보 대화 상자를 확인합니다. 이 기능을 사용하면 사용자의 설계 또는 구현에서 순환 바인딩 및 무한 루프와 같은 논리 문제를 식별하는 데 도움이 되는 매쉬업의 실행을 추적할 수 있습니다. 매쉬업에 대한 디버그 정보를 보려면 런타임 도구 모음에서 디버그 정보 표시/숨기기를 클릭합니다.
JSON 입력 구문 분석
식에서 JSON 데이터로 작업할 때 JSON.parse() 메서드를 사용하여 문자열에서 JSON을 구문 분석하고 변환하지 마십시오. JSON 기본 유형으로 설정된 매개 변수 내에서 JSON 객체에 직접 액세스할 수 있습니다.
TW.setTimout 함수 사용
이전 버전의 ThingWorx에서는 setTimeout이 함수 식에서 지원되지 않습니다. ThingWorx 9.6 이상에서는 TW.setTimeout 함수가 포함된 식을 최대 10개까지 동시에 실행할 수 있습니다. 각 식 함수에서 단일 setTimeout 함수를 정의할 수 있습니다. 식에서 setTimeout 함수 앞이나 뒤에 추가된 코드는 실행되지 않습니다. 함수에 설정할 수 있는 최대 시간 초과 값은 10초로 제한됩니다. 정의된 값이 이 제한을 초과하면 함수 값이 10초로 자동 설정되고 런타임 시 매쉬업 로그에 TW.log.warn 메시지가 표시됩니다.
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
* 
런타임 시 setTimeout 함수가 포함된 식을 실행하는 데 최대 10개의 웹 작업자를 사용할 수 있습니다. 작업자가 사용 가능할 때까지 추가 작업이 대기열에 추가됩니다.
TW.sessionStorage 함수 사용
window.sessionStorage 객체에 저장된 이름 및 값 쌍은 브라우저 세션 기간 동안에만 사용할 수 있습니다. 보안 식이 비동기적으로 실행되므로 경합 조건이 발생할 수도 있습니다. 예를 들어, 식은 세션 저장소 속성을 업데이트할 수 있으며 다른 식은 업데이트된 값을 가져오기 전에 실행될 수 있습니다. 경합 조건을 줄이고 다른 식이 실행되기 시작할 때 세션 저장소 업데이트를 사용할 수 있도록 하려면 Changed 이벤트를 사용하여 식을 연결해야 합니다.
* 
window.sessionStorage 변수는 ThingWorx GlobalSessionVariables와 관련이 없습니다.
도움이 되셨나요?