Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Date an schedule übergeben

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Date an schedule übergeben

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fastfoot @Giraffe last edited by

      @giraffe ich sehe da kein Problem:

      let sec = new Date().getTime() + 1000;
      let dat = new Date(sec);
      
      dat.setSeconds(dat.getSeconds() + 2);
      
      schedule(sec, () => log(typeof (sec)))
      schedule(dat, () => log(typeof (dat)))
      
      T 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer @fastfoot last edited by

        @fastfoot

        //typescript
        schedule(new Date(new Date().getTime()+100), function(obj){});
        
        ^ ERROR: No overload matches this call. Overload 1 of 3
        
        OliverIO F 2 Replies Last reply Reply Quote 0
        • OliverIO
          OliverIO @ticaki last edited by

          @ticaki sagte in Date an schedule übergeben:

                                                                                                                                      //typescript                                                                                                                                                                            schedule(new Date(new Date().getTime()+100), function(obj){});                                            
          

          so würde es gehen.
          Der Typ EmptyCallback mag wohl keine function() Deklarationen

          schedule(
              new Date(new Date().getTime()+5000), 
              ()=>{
                  console.log("test");
              }
          );
          
          
          T 1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer @OliverIO last edited by

            @oliverio
            Danke

            1 Reply Last reply Reply Quote 0
            • F
              fastfoot @ticaki last edited by

              @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!

              T 1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer @fastfoot last edited by

                @fastfoot
                Verzeih mir... ich verwende meinst function() weil gewöhnt, dann muß ich da wohl was ändern 🙂

                F 1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @ticaki last edited by

                  @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

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    ticaki Developer @fastfoot last edited by

                    @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.

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      fastfoot @ticaki last edited by

                      @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 🙂

                      OliverIO T 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @fastfoot last edited by

                        @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

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          fastfoot @OliverIO last edited by

                          @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

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @fastfoot last edited by

                            @fastfoot

                            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");
                                }
                            );
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • T
                              ticaki Developer @fastfoot last edited by

                              @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 😊

                              1 Reply Last reply Reply Quote 0
                              • G
                                Giraffe last edited by Giraffe

                                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

                                F 1 Reply Last reply Reply Quote 0
                                • F
                                  fastfoot @Giraffe last edited by

                                  @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

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    Giraffe @fastfoot last edited by Giraffe

                                    @fastfoot

                                    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

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @Giraffe last edited by

                                      @giraffe

                                      also wenn ich es richtig verstanden habe, willst du ein Datenobjekt mit einem bestimmten in der Zukunft gelegenen Zeitpunkt erstellen.?
                                      Hast du schon mal

                                      new 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

                                      G 1 Reply Last reply Reply Quote 0
                                      • G
                                        Giraffe @OliverIO last edited by Giraffe

                                        @oliverio

                                        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

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        465
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        4
                                        24
                                        758
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo