Ich habe eine lokale Klasse in einer JavaScript-Datei mit folgendem Inhalt erstellt:Wie erhalten Sie Chrome-Speicherwerte über die lokale Getter-Setter-Klasse?
class CustomChromeStorage {
//#region userName
get userName() {
let isCurrentValueSet = false;
chrome.storage.sync.get('userName', function (obj) {
this._userName = obj;
isCurrentValueSet = true;
});
while (true) {
if (isCurrentValueSet) {
return this._userName;
}
}
}
set userName(newValue) {
this._userName = newValue;
chrome.storage.sync.set({ 'userName': newValue }, function() {
});
}
remove_userName() {
this._userName = null;
chrome.storage.sync.remove('userName', function() {
});
}
//#endregion userName
Meine Idee dieser Art von Code zu tun, wenn ich woanders wie in meinem Code schreiben:
alert(new CustomChromeStorage().userName);
Dann Mein Code holt einfach den Benutzernamen aus dem Chrome-Speicher und zeigt ihn über eine Warnung an. Um einen Wert aus dem Chrom-Speicher zu holen, müssen wir einen Callback als Parameter bereitstellen. Ich weiß, dass dies eine gute Methode für den asynchronen Prozess ist, aber es wird manchmal mühsam für mich, alle Rückrufe zu verarbeiten.
Ich möchte, dass ich Wert aus Chrom-Speicher über meine benutzerdefinierte Klasse abrufen, um den aktuellen Code asynchron auszuführen. Deshalb habe ich unendliche While-Schleife in Getter-Methode dieser Eigenschaft geschrieben, aber das Problem ist, wenn ich versuche, Benutzername über benutzerdefinierte Chrom-Speicher-Klasse zu warnen meine gesamte Programmausführung wird hängen.
Der Grund dafür ist, dass ich zunächst isCurrentValueSet = false
gesetzt habe, was nie innerhalb der while-Schleife wahr wird.
Wenn jemand eine Idee hat, warum es nicht auf wahr innerhalb der while-Schleife festgelegt wird, dann lass es mich wissen.