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

                                  459
                                  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