NEWS
Date an schedule übergeben
-
@ticaki nun, das ist nicht die Funktion wie ich sie gezeigt habe :-)Es geht ja darum ob Date angenommen wird oder nicht
Übrigens ist auch mein Beispiel 100% Typescript!
-
@fastfoot
Verzeih mir... ich verwende meinst function() weil gewöhnt, dann muß ich da wohl was ändern -
@ticaki ist kein Ding des Verzeihens, aber wenn man ein Beispiel verändert noch bevor man es getestet hat, dann ist da oft kein Erkenntnisgewinn. Und es eröffnen sich oft Nebenkriegsschauplätze wie hier No overload matches... die aber nichts mit dem Ursprungsproblem zu tun haben und deshalb davon ablenken, so wie hier
Meine Beispiele sind auch nicht gedacht, gutes Programmieren zu zeigen, sie funktionieren normalerweise und bringen ein Ding auf den Punkt, mehr nicht
-
@fastfoot
Da hast du zu 50% recht. Hätte ich dein Beispiel getestet wäre bei mir immer noch() => == function()
und beim nächsten Einsatz hätte ich weder dieses Beispiel gefunden noch mich daran erinnert. Nur das es schon wieder nicht funktioniert. In den letzten 2 Monaten hab ich dadurch das du und andere mich korrigieren mehr Feinheiten gelernt als in den 2 Jahren davor. -
@ticaki du vergisst dass das hier nicht Dein thread ist, in welchem Du Support suchst. Es geht einzig darum zu zeigen ob type Date als Parameter genutzt werden kann oder nicht. Du hast das Beispiel verändert und dadurch den Eindruck erweckt dass es dennoch nicht funktioniert.
Wenn du eine Arrow-Function in eine normale Definition umwandeln willst so geht das sehr einfach:
schedule(dat, function () {log(typeof (dat))})
Bei Dir war aber der body {} leer, du hast meine Definition gleich zweifach verändert. Als Weiteres hast du übersehen dass Typescript eben dazu da ist Fehler nicht durchgehen zu lassen, hier war das der leere body des Callback. Das ist auch eig. richtig denn was macht ein callback für einen Sinn wenn man darin nichts tut? In JS hättest du dich gewundert warum du nicht siehst wann der schedule() triggert, in TS warst du nicht in der Lage die Fehlermeldung vorher zu interpretieren(ich auch nur ausnahmsweise!!)Zum Schluss möchte ich unbedingt anmerken dass mein Post ganz ganz ganz weit weg davon sein soll dir etwas vorzuwerfen!! Mich freut es sehr wenn ich sehe dass jd etwas lernen will, deshalb sieh bitte diesen Post als nett gemeinte Hilfestellung für die Zukunft und eben nicht als Zurechtweisung, das soll er nicht sein!
Happy coding
-
@fastfoot
Allerdings haben wir hier einen Fehler in den typescript Typen Definition gefunden,
Da schedule nicht nur Arrow functions als callback zulässt.
Ich habe nicht geprüft wo der Typ emptycallback sonst noch wo vorkommt -
@oliverio haben wir nicht, siehe meine definition im Post vor diesem, die läuft! Es lag am leeren body, für mich bedeutet empty callback nicht leerer body( da könnte man ihn auch weglassen) sondern keine Parameter
-
ah ja stimmt. und mit function functioniert es auch, wenn kein übergabeparameter mit angegeben wird. jetzt ist auch klar warum der datentyp EmptyCallback heißt.
der function body ist wohl egal ob mit oder ohne.schedule( new Date(new Date().getTime()+5000), function() { console.log("test"); } );
-
@fastfoot sagte in Date an schedule übergeben:
@ticaki du vergisst dass das hier nicht Dein thread ist.
Das vergesse ich nicht. Wie alle hier möchte ich helfen und Dinge die für dich normal und nachvollziehbar sind, sind es für mich nicht.
Dir mag es nicht auffallen aber du hast hier bis zu 8 kleine Lektionen erteilt anstatt nur ein funktionierendes Codebeispiel bereitzustellen. War von mir zwar nicht so gedacht, aber ich habe ja nicht einen leeren Body benutzt, weil ich wusste das das nicht funktioniert. Diesen habe ich nur verwendet, weil der TE in seinem Eröffnungspsting es ebenso tat.
Zum Schluss möchte ich unbedingt anmerken dass mein Post ganz ganz ganz weit weg davon sein soll dir etwas vorzuwerfen!!
Selbst wenn wäre ich für die Lektionen dankbar und der TE wohl auch.
Daher Danke
-
Moin @all,
sorry, dass ich eure reichhaltige Diskusion erst jetzt weiter verfolgen kann. Erstmal danke bis hier!Tatsächlich ging es mir nur darum herauszufinden, warum schedule offensichtlich eine Date-Type akzeptieren soll und dieses in der Praxis aber dann doch nicht geht... In sofern ist es auch total irrelevant ob der Zeitpunkt schon vergangen ist und es am Ende deshalb nicht funktioniert.
Auch wollte ich gern zu einem fixen Zeitpunkt einen einmalige function() auslösen. Etwas wie
let myDate = new Date().getTime()
würde nur die Uhrzeit übernehmen und das ist hier nicht erwünscht. Viel mehr wollte ich (hier eine etwas plakativie Syntax) sowas erreichten:
let date:Date = new Date('Sat Aug 26 2023 09:32:00 GMT+0200');
Das jedoch auch nur am Rande, den das Thema ist ja die Übergabe eines Date-Objektes.
Der Hinweis, dass das Callback eine EmptyCallback ist, ist dazu auch schon die Lösung. Aus bloßer Gewöhnung habe ich hier eben das Objekt mit an den den Callback übergeben wollen, was bei EmptyCallback nun mal nicht geht und so zu meinem Problem führte. Etwas irreführend ist hier zwar das der Date-Parameter des Schedules als Fehler angemeckert wird (sonst wäre ich vielleicht ja noch drauf gekommen). Wie auch, immer dies hier
let myDate:Date = new Date('Sat Aug 26 2023 09:32:00 GMT+0200'); schedule(myDate,function(){ console.log('es läuft') })
funktioniert.
Ziel erreicht! DANKE!
Grüße
Giraffe -
@giraffe sagte in Date an schedule übergeben:
...Etwas wie
let myDate = new Date().getTime()
würde nur die Uhrzeit übernehmen und das ist hier nicht erwünscht.wie kommst du darauf? gettime() liefert genau einen Zeitpunkt und nicht etwa sowas wie eine Uhrzeit
-
Gute Frage! Wenn ich es herausgefunden habe verrate ich es dir...
Ich dachte irgendwie da würde ein Uhr-Zeiten-String ('13:00') herauskommen. Vielleicht ist der der Name der Methode auch etwas irführend und ich werde grade auch das Gefühl nicht los, dass ich es mit einer anderen Sprache verwechselt habe.
Der Witz ist aber, dass ich genau dann dem absoluten Millisekunden-Wert schon als Alternative gesucht habe und dabei - weil ich mir ja soooo sicher war - gettime() nicht angesehen habe. Besser kann man nun Betriebsbindheit nicht mehr darstellen....
Also mein:e liebe:r @fastfoot:
Grüße
Giraffe -
also wenn ich es richtig verstanden habe, willst du ein Datenobjekt mit einem bestimmten in der Zukunft gelegenen Zeitpunkt erstellen.?
Hast du schon malnew Date("1.1.2024 15:00")
probiert? das ergibt genau den Zeitpunkt.
Nur die Uhrzeit ist nicht spezifisch genug, da javascript dann nicht weiß ob gestern, heute,morgen.
..und genau so ein Dateobjekt kannst du dann an schedule übergeben.
Im Zweifel hilft es dann auch einfach noch die Dokumentation von javascript sorgfältig zu lesen
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date?retiredLocale=de#several_ways_to_create_a_date_object -
Danke für deine Hilfe. Wie weiter oben schon geschrieben, habe ich es bereits (genau so) hinbekommen.... Problem war auch eher die falsche Verwendung es callbacks.
Grüße
Giraffe