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

                        851
                        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