NEWS
[gelöst] Funktionsunterschied
-
Hallo, ich habe eine Funktion, welche in ihrem Ursprung einfach nicht funktioniert.:
function AddUsername(UserName) { if(getState(AktiveUser).val.indexOf(UserName) == -1) { setState(AktiveUser,getState(AktiveUser).val. + "," + UserName); } return getState(AktiveUser).val.; }Es wird immer der Ursprünglicher Wert von AktiveUser zurück gegeben.
Schreibe ich Si eallerding so um, dann geht es:
function AddUsername(UserName) { let MyUser = getState(AktiveUser).val; if(MyUser.indexOf(UserName) == -1) { MyUser = getState(AktiveUser).val + "," + UserName; setState(AktiveUser,MyUser); } return MyUser; }Woran liegt das?
-
Hallo, ich habe eine Funktion, welche in ihrem Ursprung einfach nicht funktioniert.:
function AddUsername(UserName) { if(getState(AktiveUser).val.indexOf(UserName) == -1) { setState(AktiveUser,getState(AktiveUser).val. + "," + UserName); } return getState(AktiveUser).val.; }Es wird immer der Ursprünglicher Wert von AktiveUser zurück gegeben.
Schreibe ich Si eallerding so um, dann geht es:
function AddUsername(UserName) { let MyUser = getState(AktiveUser).val; if(MyUser.indexOf(UserName) == -1) { MyUser = getState(AktiveUser).val + "," + UserName; setState(AktiveUser,MyUser); } return MyUser; }Woran liegt das?
@ben1983 sagte: Woran liegt das?
An der asynchronen Abarbeitung von setState(). Man kann nicht unmittelbar nach setState() den geänderten Wert einlesen, weil setState() zu dem Zeitpunkt noch nicht fertig ist.
Weshalb zweimal getState() auf den gleichen Datenpunkt? Besser:
function AddUsername(UserName) { let MyUser = getState(AktiveUser).val; if(MyUser.indexOf(UserName) == -1) { MyUser = MyUser + "," + UserName; setState(AktiveUser,MyUser); } return MyUser; } -
@ben1983 sagte: Woran liegt das?
An der asynchronen Abarbeitung von setState(). Man kann nicht unmittelbar nach setState() den geänderten Wert einlesen, weil setState() zu dem Zeitpunkt noch nicht fertig ist.
Weshalb zweimal getState() auf den gleichen Datenpunkt? Besser:
function AddUsername(UserName) { let MyUser = getState(AktiveUser).val; if(MyUser.indexOf(UserName) == -1) { MyUser = MyUser + "," + UserName; setState(AktiveUser,MyUser); } return MyUser; }
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden