NEWS
"Unsubscribe" Objekt von einem anderen Skript
-
Wenn ich das Objekt "subscribe" und dann in einem Skript "unsubscribe", funktioniert alles.
on({id:"0_userdata.0.VIS.Views.LColorChange.RGB"}, function (obj) {console.log("OK")}); console.log(unsubscribe("0_userdata.0.VIS.Views.LColorChange.RGB")); //true
aber dann verschiebe ich die letzte Zeile in ein anderes Skript, ich habe die falsche Antwort. Beispiel:
Script1: on({id:"0_userdata.0.VIS.Views.LColorChange.RGB"}, function (obj) {console.log("OK")}); Script2: console.log(unsubscribe("0_userdata.0.VIS.Views.LColorChange.RGB")); //false
Wie kann ich ein in einem anderen Skript abonniertes Objekt abbestellen?
-
@czarnylewis Mit meinem Halbwissen würde ich sagen, dass das nur indirekt z.B. über einen Hilfsdatenpunkt geht, den Du in dem einen Script auf false setzt und darauf in dem anderen einen Trigger setzt, der dann das Unsubscribe macht.
-
@ahnungsbefreit Danke, aber ich habe viele Skripte für ein Objekt und möchte dies von einem bestimmten Skript aus tun.
-
@czarnylewis Skripte laufen jeweils in ihrer eigenen Sandbox mit eigenen Subscriptions etc. Das was du vor hast, geht so nicht ohne Umwege wie z.B. einen Datenpunkt, über den sich die Skripte gegenseitig steuern.
-
@alcalzone sag ich doch!
-
Vielleicht verstehe ich es nicht.
Wie macht man das im folgenden Beispiel richtig?Script1: SetSubscribe("1") Script2: SetSubscribe("2") Script global: function SetSubscribe(text:string) { unsubscribe("obiectID") on({id:"obiectID"}, function (obj) {console.log(text)}) }
Nach dem Ausführen von Script1 gibt mir das Ändern von obiectID "1" - es ist in Ordnung.
Als nächstes, nachdem ich Script2 ausgeführt habe, gibt mir das Ändern von obiectID "1" und "2" - ich möchte nur "2". -
In welcher Datei ist der Quellcode der "unsubscribe" Anweisung geschrieben?
-
@czarnylewis
Das geht so nicht. Globale Skripts werden jedem Skript vorangestellt in deinem Beispiel erzeugst du 2 on() die jeweils auf die Änderung von objetcID reagieren.