Functions
🧩 Using JavaScript Functions (Advanced)
In addition to built-in expressions, you can write JavaScript functions and invoke them from within the Logic dialog using:
js.eval('fnName', arg1, arg2, ...)
The JavaScript functions must be defined in the following format:
function fnName(args) {
const arg1 = args[0];
const arg2 = args[1];
// your logic
}
⚠️ Note: Arguments are automatically collected as an array, so you should extract individual arguments from the
args
array in your function body as shown above.
⚠️ Important Considerations
JavaScript functions incur a small performance overhead as the expression engine needs to cross into the JavaScript runtime. 👉 Avoid using them in rapidly updating UIs such as scrolling lists or infinite lists. Instead, pre-process the data before passing it to a ListView.
JavaScript functions that work in the Dashboard preview (browser) might not work in the app for advanced date/time scenarios. This is because the app runtime uses QuickJS, which has limited support for some Date APIs. Use basic Date parsing/formatting only, and prefer Digia’s built-in
DateTime
functions whenever possible.
✅ Examples
Define functions in your script:
function multiply(args) {
const a = args[0];
const b = args[1];
return a * b;
}
function formatTimestamp(args) {
const timestamp = args[0]; // e.g. 1691939250000
const date = new Date(timestamp);
return date.toISOString().split('T')[0]; // ✔️ basic date formatting
}
Invoke them in your expression:
js.eval('multiply', 6, 7)
js.eval('formatTimestamp', response.data.createdAt)
Last updated