NEWS
Javascript und Timeout Problem
-
Hallo zusammen,
aktuell habe ich ein Problem mit dem ioBroker und javascript.Vorab verwende die folgende Versionen:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Platform: linux
Architecture: arm
CPUs: 4
Speed: 1400 MHz
Model: ARMv7 Processor rev 4 (v7l)
RAM: 927.1 MB
System uptime: 1 T. 06:56:38
Node.js: v8.14.0
NPM: 6.4.1
Disk size: 29.2 GiB
Disk free: 27.3 GiB
Uptime: 1 T. 06:56:31
Active instances: 15
Script Engine: Verfügbare Version: 3.6.5; Installierte Version: 4.1.0
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Zu meinem eigentlichen Problem:Ich bekomme mittlerweile folgende Fehler, wenn ich etwas per Timeout mache, egal ob ich es per Blocky oder das in Javascript umwandle.
Fehlermeldung:
15:55:00.591 error javascript.0 script.js.common.test.TestScript: script.js.common.test.TestScript:1 15:55:00.591 error javascript.0 at script.js.common.test.TestScript:1:15 15:55:00.591 error javascript.0 at script.js.common.test.TestScript:1:70
Fehlermeldung aus dem Logfile:
javascript.0 2019-02-16 16:09:39.575 error at ContextifyScript.Script.runInContext (vm.js:59:29) javascript.0 2019-02-16 16:09:39.575 error at script.js.common.test.TestScript:1:70 javascript.0 2019-02-16 16:09:39.575 error at script.js.common.test.TestScript:1:15 javascript.0 2019-02-16 16:09:39.575 error ReferenceError: timeout is not defined javascript.0 2019-02-16 16:09:39.575 error ^ javascript.0 2019-02-16 16:09:39.575 error (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); javascript.0 2019-02-16 16:09:39.575 error script.js.common.test.TestScript: script.js.common.test.TestScript:1
der Quellcode dazu lautet:
(function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); timeout = setTimeout(function () { console.log('Ein Test'); }, 1000); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIydVFEUCU0MDklNDB3ajNudUUqSE5uVFNfJTIyJTIweCUzRCUyMjg4JTIyJTIweSUzRCUyMjExMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0JTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0dGltZW91dCUyMiUyMGlkJTNEJTIyJTVEYlFxazglM0FaJTNGcWhEJTVCJTI0NUQlNDBHLiUyQyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTEwMDAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtcyUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJxTmczMm0hJTQwT2F3ZzBTJTdEbXFVU18lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWxvZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlM0ZkeVd1c0NocUVQKiU0MF8lN0IlM0Z2eTNHJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUVpbiUyMFRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
Kann mir jemand sagen warum?
Danke sehr.
-
timeout ist nicht deklariert. Mein Blockly erzeugt diesen Code:
var timeout; (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); timeout = setTimeout(function () { console.log('test'); }, 1000);
-
Na ja - bei deinem ersten Durchlauf ist timeout nicht definiert. Setze doch einfach vor das ganze einmal var timeout=null. Dann sollte der Fehler weg sein.
-
@Asgothian Vielen Dank, das hat geholfen.