Chrome-Speicher-API-Wert ohne Funktion zurückgeben

In den letzten zwei Tagen habe ich mit asynchronem Chrome-Speicher gearbeitet. Es funktioniert "gut", wenn Sie eine Funktion haben. (Wie unten)

chrome.storage.sync.get({"disableautoplay": true}, function(e){
console.log(e.disableautoplay);
});

Mein Problem ist, dass ich mit dem, was ich tue, keine Funktion verwenden kann. Ich möchte es einfach zurückgeben, wie LocalStorage es kann. Etwas wie

var a = chrome.storage.sync.get({"disableautoplay": true});

ode

var a = chrome.storage.sync.get({"disableautoplay": true}, function(e){
    return e.disableautoplay;
});

Ich habe eine Million Kombinationen ausprobiert, sogar eine öffentliche Variable festgelegt und Folgendes festgelegt:

var a;
window.onload = function(){
    chrome.storage.sync.get({"disableautoplay": true}, function(e){
    a = e.disableautoplay;
});
}

Nichts funktioniert. Es wird alles undefiniert zurückgegeben, es sei denn, der Code, auf den es verweist, befindet sich in der Funktion get und das ist für mich nutzlos. Ich möchte nur einen Wert als Variable zurückgeben können.

Ist das überhaupt möglich?

EDIT: Diese Frage ist kein Duplikat. Bitte erlauben Sie mir zu erklären, warum:

1: Es gibt keine anderen Posts, die dies speziell fragen (ich habe zwei Tage lang zuerst gesucht, nur für den Fall).

2: Meine Frage wird immer noch nicht beantwortet. Ja, Chrome Storage ist asynchron und gibt keinen Wert zurück. Das ist das Problem. Ich werde unten näher darauf eingehen ...

Ich muss in der Lage sein, einen gespeicherten Wert außerhalb der Funktion chrome.storage.sync.get abzurufen. Ich kann localStorage nicht verwenden, da es url-spezifisch ist und nicht auf dieselben Werte sowohl über die browser_action-Seite der Chrome-Erweiterung als auch über die background.js zugegriffen werden kann. Ich kann mit einem Skript keinen Wert speichern und mit einem anderen auf ihn zugreifen. Sie werden separat behandelt.

So ist meine einzige Lösung, Chrome Storage zu verwenden. Es muss eine Möglichkeit geben, den Wert eines gespeicherten Elements abzurufen und es außerhalb der Funktion get zu referenzieren. Ich muss es in einer if-Anweisung überprüfen.

Nur so wie localStorage das kann

if(localStorage.getItem("disableautoplay") == true);

Es muss eine Möglichkeit geben, etwas in Anlehnung an @ zu t

if(chrome.storage.sync.get("disableautoplay") == true);

Ich weiß, dass es nicht so einfach sein wird, aber so kann ich es am besten erklären.

Jeder Beitrag, den ich sehe, sagt:

chrome.storage.sync.get({"disableautoplay": true, function(i){
    console.log(i.disableautoplay);
    //But the info is worthless to me inside this function.
});
//I need it outside this function.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage