Page 1 of 1

Can someone check this simple code?

Posted: Fri Nov 01, 2019 8:45 am
by orangetek

Code: Select all

Repeat
  count+1
  Debug count
Until count=1000
This simple bit of code takes around 3 seconds to complete and does not display anything in the debug window until completed. Is this normal?

Thanks

Re: Can someone check this simple code?

Posted: Fri Nov 01, 2019 2:04 pm
by Peter
dev.to wrote:Javascript is a single threaded language. This means it has one call stack and one memory heap. As expected, it executes code in order and must finish executing a piece code before moving onto the next.
It's synchronous, but at times that can be harmful. For example, if a function takes awhile to execute or has to wait on something, it freezes everything up in the meanwhile.
You can use setTimeout() to avoid freezing the debug output:

Code: Select all

Procedure DebugX(DebugOutput)
  ! setTimeout(function() { 
  Debug(DebugOutput)
  ! }, 0);  
EndProcedure

Repeat
  count + 1
  DebugX(count)
Until count = 1000
Greetings ... Peter

Re: Can someone check this simple code?

Posted: Mon Nov 04, 2019 6:46 am
by orangetek
Hi Peter,

Thanks for the reply. I am still a bit confused as i thought each command was run in sequence. Can you explain where exactly the blocking is happening?