Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 26. 8. 2016, 17:37:22
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 * |
#2 · Zasláno: 26. 8. 2016, 22:01:06
Chyba odhalena a vyřešena.
|
||
Časová prodleva: 8 let
|
0