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
  5. Javascript wird nicht beendet und läuft in Hintergrund

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    886

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Javascript wird nicht beendet und läuft in Hintergrund

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 208 Aufrufe 2 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.
  • A Offline
    A Offline
    AndiB
    schrieb am zuletzt editiert von
    #1

    Hallo,

    Ich versuche mittels Javascript das Discord.js dazu zu bringen wenn in einem Server oder direkt der Bot angeschrieben wird mir etwas mitzuteilen da ich nicht über node-red gehen wollte.

    Es funktioniert auch schon, dass ich etwas zurückbekomme. Wenn ich aber das Script stoppe läuft es anscheinend im Hintergrund weiter und wenn ich es wieder starte bekomme ich 2. Antworten zurück. Dies erhöht sich bei jedem mal Starten des Scripts.
    Die Einzige Möglichkeit es zu beenden ist die ganze Instanz javascript.0 zu restarten.

    Was mache ich falsch oder ist es so und nicht umsetzbar was ich mir vorstelle.
    Hier auch noch der Code mit welchem ich es versuche.

    const Discord = require('discord.js');
    
    var token = "XXX-XXX-XXX";
    var prefix = "::";
    
    var client = new Discord.Client();
    
    client.on('ready', () => {
        console.log('i am ready!')
        console.log('Logged in as ' + client.user.username + ' ....')
        console.log(client.user.id)
    });
    
    client.on('message', msg => {
      if (msg.content === 'ping') {
        msg.reply('Pong!');
        msg.reply(msg.author.id);
      };
    });
    
    client.login(token);
    

    Bin leider Ratlos und wenn es schon mal so einen Betrag gegeben hat habe ich ihn leider nicht gefunden.
    Einen schönen Abend
    Andreas

    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • A AndiB

      Hallo,

      Ich versuche mittels Javascript das Discord.js dazu zu bringen wenn in einem Server oder direkt der Bot angeschrieben wird mir etwas mitzuteilen da ich nicht über node-red gehen wollte.

      Es funktioniert auch schon, dass ich etwas zurückbekomme. Wenn ich aber das Script stoppe läuft es anscheinend im Hintergrund weiter und wenn ich es wieder starte bekomme ich 2. Antworten zurück. Dies erhöht sich bei jedem mal Starten des Scripts.
      Die Einzige Möglichkeit es zu beenden ist die ganze Instanz javascript.0 zu restarten.

      Was mache ich falsch oder ist es so und nicht umsetzbar was ich mir vorstelle.
      Hier auch noch der Code mit welchem ich es versuche.

      const Discord = require('discord.js');
      
      var token = "XXX-XXX-XXX";
      var prefix = "::";
      
      var client = new Discord.Client();
      
      client.on('ready', () => {
          console.log('i am ready!')
          console.log('Logged in as ' + client.user.username + ' ....')
          console.log(client.user.id)
      });
      
      client.on('message', msg => {
        if (msg.content === 'ping') {
          msg.reply('Pong!');
          msg.reply(msg.author.id);
        };
      });
      
      client.login(token);
      

      Bin leider Ratlos und wenn es schon mal so einen Betrag gegeben hat habe ich ihn leider nicht gefunden.
      Einen schönen Abend
      Andreas

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      Ich vermute, du musst den Client beenden, da sonst die Verbindung bestehen bleibt, und die JavaScript-Sandbox nicht beendet wird.

      Füge folgende Zeilen am Ende in den Skript ein:

      onStop(() => {
          client.destroy();
      });
      

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        AndiB
        schrieb am zuletzt editiert von
        #3

        Ich danke dir genau das hat gefehlt.
        funktioniert super. Hatte mir schon Gedanken gemacht mit der Vorschlaghammer Methode daran zu gehen.
        Eigenen Instance und die jedes mal Stoppen und Starten wenn das Script beendet wird.
        Dies ist natürlich die bessere Art.

        Danke noch mal und einen schönen Tag AlCalzone

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


        Support us

        ioBroker
        Community Adapters
        Donate

        422

        Online

        32.6k

        Benutzer

        82.1k

        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