Autor Zpráva
tester
Profil *
Mám funkci na načítání dat z profilu prohlížeče. Je to součást webextensions (Firefox) nebo chrome (Chrome) a mám v tom addonu funkci chrome.storage.local.get, která má vytáhnout uložené data. get se skládá ze dvou argumentů: první je pole s vlastnostmi, které chci vytáhnout a druhý je funkce callback, která se má zavolat po tom co jsou data vytaženy. Když v debuggeru (Chrome) dám breakpoint na řádek s get, a pak zmáčknu F10 (další krok) tak mi to hodí chybu, že vlastnost currentNameSpace.easy.restore není definovaná.

Ze souboru easy_fnc.js
// Nejdříve definuji funkci 
currentNameSpace.easy.restore = function(e = null, list_item = null) {
...
}
currentNameSpace.easy.load_data = function(e) {
  if (!currentNameSpace.easy.initiated )  
    chrome.storage.local.get({easy: undefined,profiles: undefined, default_profiles: undefined},
      (result) => { 
        currentNameSpace.data.easy = result.easy;
        currentNameSpace.data.profiles = result.profiles;
        currentNameSpace.data.default_profiles = result.default_profiles;
        currentNameSpace.easy.initiated = true;
        currentNameSpace.easy.restore();
        }
    );
}

Ještě abych to uvedl na pravou míru. Nejdříve se spouští kód ze souboru easy.js

MyNamespace = package.namespace;
define_namespace_methods(MyNamespace);
define_easy_methods(MyNamespace);  // toto definuje tu funkci currentNameSpace.easy.load_data
MyNamespace.load_data(); // toto spouští tu funkci

Nenapadá vás v čem by mohla být chyba? Prý je to asynchronním voláním ale nechápu jak k tomu dochází. Podle mě define_easy_methods nadefinovalo ty metody a tak by nemělo nastat tvrzení že ta funkce .restore není definovaná.
tester
Profil *
Chyba odhalena a vyřešena.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: