Mashup Builder > 函數 > 建立函數運算式的最佳作法
建立函數運算式的最佳作法
下列函數與小器具支援在混搭中撰寫自訂 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 或更新版本中,您最多可以同時執行 10 個包含 TW.setTimeout 函數的運算式。您可以在每個運算式函數中定義單一 setTimeout 函數。不會執行在運算式中的 setTimeout 函數之前或之後新增的任何程式碼。您可以為函數設定的最大逾時值限制為 10 秒。當定義的值超出此限制時,函數值會自動設定為 10 秒,並會在執行時間於混搭記錄檔中顯示 TW.log.warn 訊息。
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
* 
在執行時間,最多十個 Web Worker 可用來執行包含 setTimeout 函數的運算式。其他運算式會排入佇列,直到 worker 可用為止。
使用 TW.sessionStorage 函數
儲存在 window.sessionStorage 物件中的名稱與值對只能在瀏覽器工作階段期間使用。由於安全運算式以非同步方式執行,因此可能會發生競爭情形。例如,一個運算式可能更新工作階段儲存內容,而另一個運算式則可能在取得更新值之前執行。為了減少競爭情形,並確保當另一個運算式開始執行時,工作階段儲存更新可用,您應使用 Changed 事件串聯運算式。
* 
window.sessionStorage 變數與 Thingworx GlobalSessionVariables 不相關。
這是否有幫助?