Gibt es ein äquivalent von setTimeout in Adobe ExtendScript
Javascript setTimeout
Funktion ist eine Methode des window
Objekt. Dieses Objekt existiert nicht in ExtendScript und ist daher nicht verfügbar, um die Skripte für Adobe InDesign oder Illustrator. Was kann ich stattdessen verwenden, um erreichen die gleichen Ergebnisse?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist Teil des extendscript ist
$
Objekt.Nicht das gleiche wie setTimeout (), aber Sie sollten in der Lage sein, um es für Sie arbeiten.
EDIT: Hier mal setTimeout Erweiterung für extendscript:
var t = setTimeout(stopPooling, 10000)
. Wenn durch die Bündelung der log kann ich feststellen, dass die externe Anwendung beendet erfolgreich (unter 10 Sekunden), dann muss ich Abbrechen timeout (clearTimeout(t)
) so nicht zu nennenstopPooling
unnötig.func();
zuif(!appRan) func();
? Ich weiß nicht, wie zu nähern, schreiben clearTimeout() in extendscript.var t, i; i=setInterval(function() { if(appRan) { clearInterval(i); clearTimeout(t); handleAppSuccess(); }}, 100); t=setTimeout(function() { clearInterval(i); handleAppFailed(); }, 10000);
ich denke, ich könnte dies mit$.sleep
mit einem Zähler:for(c=0; c<100; ++c){ $.sleep(100); if(appRan){ success=true; c=101; }} if(success){ handleAppSuccess(); } else { handleAppFailed(); }
, aber auch andere Situationen erfordern einen real-nicht-blockierende Methode...app.executeCommand
zu beendenGibt es eine setTimeout ExtendScript Umsetzung hier (Deutsche site, mit code kommentiert in Englisch), aber da es stützt sich auf
app.idleTasks
, es funktioniert in InDesign nur (kein Photoshop).Ich füge hier die herunterladbaren code gefunden in dem link oben (© Andreas Imhof):