Announcement

Collapse
No announcement yet.

eigene Funktion gibt falschen Wert zurück

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • eigene Funktion gibt falschen Wert zurück

    Guten Morgen zusammen,
    ich mache hier glaube ich einen Fehler.

    Ich habe mir diese Funktion geschrieben:

    PHP Code:
    // Prüft ob Mitglied schon in einer Gruppe ist. Returns true oder false
    function fnchkMemberInGroup(URLBIDGIDMember)
    {
        var 
    URL1 URL BID "/groups/"GID "/members";
        var 
    found false;

        
    axios.get(URL1)
            .
    then(response => {

                
    response.data.members.forEach(function(item){

                    if (
    Member == item.id)
                    {
                        
    // console.log(item.id);
                        
    found true;
                    }
                })

            })
            .catch(
    error => {
                
    console.log(error);
            });

       return 
    found;


    Der Wert found soll True sein, wenn die Bedingung zutrifft. Wenn nicht soll er false bleiben.
    Mit dem console.log konnte ich sehen, dass ich in der If Abfrage lande. Aber warum stellt er mir die var found nicht auf true? Sie kommt immer false raus.

    Habe ich da einen Fehler?

    Vielen Dank und schöne Grüße aus Mainz.

  • #2
    Setze vor dem return die Logausgabe von found und ändere var found=false; nach found=false;
    Christian

    Comment


    • #3
      Guten Morgen,

      danke für deine Hilfe!

      Wenn ich die Deklaration wegnehme, erkennt er mir die Variable nicht als solche.

      Setze ich über return found ein console.log(found)
      Dann kommt da auch false raus. obwohl er mir den richtigen Namen ausgibt.


      Member gebe ich als String vor, bei der Übergabe in die Funktion.
      item.id ist das was aus der API kommt und den String enthält, der gleich sein muss wie Member.

      Intersannt ist, ich lasse es mir in der CMD ausgeben, dass erst false ausgegeben wird und dann erst der console.log von item.id


      ÖHM ! fällt mir beim tippen ein, wie wird das den abgearbeitet? Wenn die API jetzt etwas langsam ist, haut er mir dann den return found eher raus, und dann kommt irgendwas aus der API? Muss ich die dann auf Async setzten?

      Danke.

      Comment


      • #4
        AHA !!!

        Mit async Function und await axios klappt es tatsächlich!!

        Jetzt habe ich noch eins, ich muss das Promise { pending } wegbekommen, ich prüfe diese Funktion in einer anderen in einer If abfrage ab.


        Edit:

        ich habe es dann mal so abgefangen:

        PHP Code:
        fnchkMemberInGroup(URL,BID,GroupIDMember)
                                .
        then((data) => {

                                    if(
        data !== true)
                                    {
                                        
        addGroupMember(URLBIDGroupIDMember);
                                        var 
        AddMember = ("Das Mitglied: " Member ", wird zur Gruppe: " Group " hinzugefügt!");
                                        
        sendMessage(URLBIDGIDAddMember);
                                    }else{
                                        
        sendMessage(URLBIDGID"Das Mitglied: " Member ", ist bereits in dieser Gruppe");
                                    }

                                }); 
        Zuletzt editiert von matze1708; 10.03.2021, 10:45.

        Comment

        Working...
        X