Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Javascript http request mit delay

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Javascript http request mit delay

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
5 Beiträge 3 Kommentatoren 725 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Nicht stören
    H Nicht stören
    Hansi1234
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    ich stehe gerade etwas auf dem Schlauch. Existiert bei Javascript keine einfache delay Funktion wie z.B. "sleep: 10"?

    Ich möchte mehrere URLs mit einer Verzögerung aufrufen und bekomme es nicht gebacken. Hier sollte zwischen den requests ein delay rein.

    Danke für eure Hilfe

    on({id:"javascript.0.States.DoorPi"/*States.DoorPi*/,val: true}, function (obj) {
            if (obj.newState.val === true) {
            setState("sayit.1.tts.text", "de;100;" + 'http://192.168.179.60:8082/state/sayit.1.tts.mp3');    
    request("http://192.168.179.54:9000/anyurl?p0=mixer&p1=volume&p2=20").on('error', function  (e) {  log(e, 'error');});
    request("http://192.168.179.54:9000/anyurl?p0=mixer&p1=volume&p2=100").on('error', function  (e) {  log(e, 'error');});
    }
    });
    1 Antwort Letzte Antwort
    0
    • bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      Nein, ein delay oder sleep gibt es nicht (glaub ich zumindest).

      Musst mit timeout arbeiten.

      on({id:"javascript.0.States.DoorPi"/*States.DoorPi*/,val: true}, function (obj) {
              if (obj.newState.val === true) {
                    setTimeout(function() {
                       tue etwas nach 2 Sek.
                    }, 2000);
                    setTimeout(function() {
                       tue etwas nach 4 Sek.
                    }, 4000);
                    setTimeout(function() {
                       tue etwas nach 6 Sek.
                    }, 6000);
              }
      });
      
      

      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      H 1 Antwort Letzte Antwort
      1
      • T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        Das entspricht zwar nicht dem Geist des Erfinders oder Philosophie, jedoch kann man ein sleep() so lösen:

        // Codeausschnitte
        const getDetailsOfLight = async function (id, setId=null, value=0) {
            const prefix = '1-##**25';
            if (setId) {
                setState(setId, getState(setId).val + value)
                await sleep(20); // warte auf das Schreiben des Datenpunkts
            }
            ...
        }
        
        async function sleep (ms) {
            return new Promise( resolve => {setTimeout(()=>{ resolve();},ms);});
        }
        

        Alle Funktion bis zum sleep müssen mit async definiert und mit await aufgerufen werden, wenn du kein asynchrones Verhalten wünschst.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        bahnuhrB 1 Antwort Letzte Antwort
        0
        • bahnuhrB bahnuhr

          Nein, ein delay oder sleep gibt es nicht (glaub ich zumindest).

          Musst mit timeout arbeiten.

          on({id:"javascript.0.States.DoorPi"/*States.DoorPi*/,val: true}, function (obj) {
                  if (obj.newState.val === true) {
                        setTimeout(function() {
                           tue etwas nach 2 Sek.
                        }, 2000);
                        setTimeout(function() {
                           tue etwas nach 4 Sek.
                        }, 4000);
                        setTimeout(function() {
                           tue etwas nach 6 Sek.
                        }, 6000);
                  }
          });
          
          
          H Nicht stören
          H Nicht stören
          Hansi1234
          schrieb am zuletzt editiert von
          #4

          @bahnuhr
          Vielen Dank, klappt soweit :-)

          1 Antwort Letzte Antwort
          0
          • T ticaki

            Das entspricht zwar nicht dem Geist des Erfinders oder Philosophie, jedoch kann man ein sleep() so lösen:

            // Codeausschnitte
            const getDetailsOfLight = async function (id, setId=null, value=0) {
                const prefix = '1-##**25';
                if (setId) {
                    setState(setId, getState(setId).val + value)
                    await sleep(20); // warte auf das Schreiben des Datenpunkts
                }
                ...
            }
            
            async function sleep (ms) {
                return new Promise( resolve => {setTimeout(()=>{ resolve();},ms);});
            }
            

            Alle Funktion bis zum sleep müssen mit async definiert und mit await aufgerufen werden, wenn du kein asynchrones Verhalten wünschst.

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #5

            @ticaki sagte in Javascript http request mit delay:

            async

            Ja, damit hab ich mich auch schon mal abgekämpft.

            War mir aber irgendwie zu kompliziert.
            So richtig verstanden hab ich dieses async und promise (noch) nicht.

            mfg


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            842

            Online

            32.5k

            Benutzer

            81.7k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe