Javascriptlet - Arrays not working

52 views
Skip to first unread message

francwalter

unread,
Jan 12, 2023, 7:00:04 AM1/12/23
to Tasker
Hello
I want to create some anagram-function in Tasker, I found this code on SE, but it wont run.
So I broke it down to very basic commands with an array, which do not work.
Here is my description of an example task, where I would expect the var jstestfuncreturn to be filled somehow:

Task: TestJavaScriptletArray
   
    A1: JavaScriptlet [
         Code: function testfunc() {
           var letter = ["A","B"];
           return letter;
         }
         var jstestfuncreturn = testfunc();
         Auto Exit: On
         Timeout (Seconds): 45 ]
   
    A2: Flash [
         Text: jstestfuncreturn: %jstestfuncreturn
         jstestfuncreturn(): %jstestfuncreturn()
         jstestfuncreturn(1): %jstestfuncreturn(1)
         jstestfuncreturn(#): %jstestfuncreturn(#)
         Tasker Layout: On
         Timeout: 15000
         Continue Task Immediately: On
         Dismiss On Click: On ]

If I run the task, I get only:

jstestfuncreturn: %jstestfuncreturn
jstestfuncreturn():
jstestfuncreturn(1): %jstestfuncreturn1
jstestfuncreturn(#): 0

For %jstestfuncreturn() I would at least expect: A, B
For %jstestfuncreturn(#) I would expect: 2
For %jstestfuncreturn(1) I would expect: A

Is Tasker not able to handle JS-arrays as I can read in the doc?
Could somebody give me a hint, what is wrong?

Thank, frank

Tasker 6.1.7-beta on Android 9

ktmom

unread,
Jan 12, 2023, 8:59:49 PM1/12/23
to Tasker
    Task: JavaScriptLet
   
    A1: JavaScriptlet [
         Code: var jstestfuncreturn = [];

         
         function testfunc() {
           var letter = [
             'A',
             'B'
            ];
           return letter;
         };
         
         var jstestfuncreturn = testfunc();
         Libraries: 45

         Auto Exit: On
         Timeout (Seconds): 45 ]
   
    A2: Flash [
         Text: jstestfuncreturn: %jstestfuncreturn
         jstestfuncreturn(): %jstestfuncreturn()
         jstestfuncreturn(1): %jstestfuncreturn(1)
         jstestfuncreturn(#): %jstestfuncreturn(#)
         Long: On

         Continue Task Immediately: On
         Dismiss On Click: On ]
   
    jstestfuncreturn: %jstestfuncreturn
    jstestfuncreturn(): A,B
    jstestfuncreturn(1): A
    jstestfuncreturn(#): 2

francwalter

unread,
Jan 13, 2023, 12:57:54 PM1/13/23
to Tasker
ktmom schrieb am Freitag, 13. Januar 2023 um 02:59:49 UTC+1:
    Task: JavaScriptLet
   
    A1: JavaScriptlet [
         Code: var jstestfuncreturn = [];
    ....

I get it! A variable is not passed through from JS to Tasker, if it is declared in a function only.
Must be declared outside, so Tasker can parse the code and initialize it.
Now it works :)
Thank!
Reply all
Reply to author
Forward
0 new messages