NEWS
SOLVED Eine Funktion aus Skript 2 aufrufen
-
Hallo zusammen
Ich habe eine Funktion in Skript 2.
Diese möchte ich aus Skript 1 aufrufen.Hab einiges nachgelesen aber nichts geht bei mir.
Einmal stand, dass eine Funktion:
function x(){ console.log('function x'); } x();
Auch einfach mit
x();
in einem zweiten Skript aufgerufen werden kann. Das geht bei mir nicht.
habs auch versucht mit:
var SomeName = function() { var function1 = function() { console.log('function 1'); } return { function1: function () { return function1(); } }}(); SomeName.function1();
Aufruf auch:
SomeName.function1();
Geht auch nicht (ist ja in der Logik auch der gleiche weg wie Variante 1.
Nur: Warum geht's nicht?
Danke
Dominik
-
@dominic-reber Du musst globale Skripte verwenden.
-
@dominic-reber Du musst globale Skripte verwenden.
-
@dominic-reber Ach herrje - erst jetzt seh ich dass es unter "Experten-Modus" ein "Global"-Ordner existiert.
Wenn ich sie dort reinkopiere, gehts....Danke!
-
@unclesam Hi und danke!
Also hab das Script jetzt im Global-Ordner. Und kann es wie gewünscht aufrufen.
Wie kann ich jetzt aber externe module dort auch registrieren?
z.b. googleapis - bis jetzt hab ich das in der Instanz-Einstellungen registrieren können - unter Global wird das anscheinend nicht erkannt?const { google } = require('googleapis');
Sagt er cannot find module?
-
@dominic-reber OK, das is komisch... Externe Module sollten in globalen Skripten genauso funktionieren wie in normalen Skripten. Denn: in Tat und Wahrheit werden die globalen Skripte einfach "vor das eigentliche Skript kopiert". Bist du sicher, dass du nicht einen Schreibfehler oder so hast? Oder dasselbe zweimal definiert hast?
-
@unclesam Danke für Deine Nachricht.
Ok interessant. Das gleiche Skript funktionierte vorher und nach dem Kopieren in global-ordner beschwert er sich.
Aber irgendwie resetted meine javascript-instanz gerade die ganze Zeit, da stimmt was nicht.Hab alle skripts deaktiviert - immer noch restarts. Instanz gelöscht und neu installiert - immer noch nicht.
Alle skripts gelöscht und instanz neu installiert - immer noch restart. Strange. -
wenn du eine funktion in einem globalen script ohne trigger aufrufst, wird das script x-mal ausgeführt, wenn die instanz eingeschaltet wird - es ist ja in jedem script dazugekommen
daher immer vorsicht mit globalen scripten
-
@liv-in-sky Aber wenn ich das ganze in einer Funktion in einem globalen Skript lege, sollte das ja nicht X-Mal ausgeführt werden, richtig?
Funktionieren tut das aber gerade nicht bei mir.
globales skript:
function X(){ log('a'); }
wieso kann ich in einem Skript in "root" jetzt nicht
SkriptName.X();
ausführen?
Wie muss ich das realisieren, damit es geht?
-
@dominic-reber sagte: Wie muss ich das realisieren, damit es geht?
Aufruf aus nicht globalem Skript:
X();
-
@paul53 Oh man. Wie blöd muss ich sein
Wenn die Skripte rüberkopiert werden, dann muss das ja direkt aufrufbar sein.Danke!