Arbeiten an einer Chrome-Erweiterung. Ich bin mit dem folgenden, einige Daten zu meinem lokalen Speicher zu speichern:Abfragen des lokalen Speichereintrags ohne Fehler zu werfen
chrome.storage.local.set({ [variablyNamedEntry]: someObjectToBeSaved });
An anderer Stelle in meinem Code möchte ich abfragen, ob der Eintrag vorhanden ist, und wenn ja, werde ich auf lokale einige Variable „myVar“ wollen mit dem Objekt.
Wenn der Eintrag vorhanden ist, funktioniert dieser Code meine Ziele zu erreichen:
chrome.storage.local.get(null, function(result){
myVar = result[variablyNamedEntry];
}
Aber wenn kein Eintrag für „variablyNamedEntry“ existiert wirft es einen Fehler. Ich könnte diesen Fehler mit einer try/catch-Sequenz verwalten. Aber das kann nicht der beste Ansatz sein, da ich weiß, dass es den Eintrag nicht in einem sehr großen Prozentsatz der Zeit finden wird.
Wie kann ich mein Ziel erreichen?
Update:
ich versuchte mit:
chrome.storage.local.get([variablyNamedEntry], function(result){
if (result != undefined)
myVar = result[variablyNamedEntry];
}
Aber ich immer noch die folgenden Fehlermeldung erhalten, wenn der Eintrag nicht existiert:
extensions::uncaught_exception_handler:8 Error in response to storage.get: TypeError: Cannot read property 'someProperty' of undefined
Pass '[variablyNamedEntry]' als erstes Argument an '. get() '. Dann sollte der Callback überprüfen, ob der Ergebnisparameter nicht null ist, und wenn der Eintrag gefunden wurde, wird er in diesem Objekt vorhanden sein. – Pointy
Dies löst immer noch eine nicht abgefangene Ausnahme aus, wenn der Eintrag nicht gefunden wird. – COMisHARD
Welche Ausnahme wird ausgelöst? Wenn Sie sicherstellen, dass "Ergebnis" nicht null/undefiniert ist, bevor Sie versuchen, auf den Wert zuzugreifen, gibt es keine Ausnahme. – Pointy