this question has answer here:
//function download pps_compress.txt cloud server global parameter set pps function get_pps_params() { chrome.storage.local.get(['ppsparams'], function(result) { if (typeof(result) !== "undefined" && result != null){ ppsparams = _base64toarraybuffer(result.ppsparams); console.log(ppsparams); dfd_pps.resolve(); return; } }); if(ppsparams == null) { var oreq = new xmlhttprequest(); oreq.open("get", cloud_server + 'get_pps_params', true); oreq.responsetype = "arraybuffer"; oreq.onload = function (oevent) { console.log("got pps params compressed!"); ppsparams = oreq.response; // note: not oreq.responsetext chrome.storage.local.set({ppsparams: _arraybuffertobase64(ppsparams)}); dfd_pps.resolve(); }; oreq.send(); } } in above piece of code trying parameters varaible ppsparams local storage, want send request cloud_server if local storage request fails, right both being executed, how can defer xmlhttprequest.
looks chrome.storage.local.get asynchronous, move xmlhttprequest code shown below
function get_pps_params() { chrome.storage.local.get(['ppsparams'], function(result) { if (typeof(result) !== "undefined" && result != null){ ppsparams = _base64toarraybuffer(result.ppsparams); console.log(ppsparams); dfd_pps.resolve(); } if(ppsparams == null) { var oreq = new xmlhttprequest(); oreq.open("get", cloud_server + 'get_pps_params', true); oreq.responsetype = "arraybuffer"; oreq.onload = function (oevent) { console.log("got pps params compressed!"); ppsparams = oreq.response; // note: not oreq.responsetext chrome.storage.local.set({ppsparams: _arraybuffertobase64(ppsparams)}); dfd_pps.resolve(); }; oreq.send(); } return; }); }
Comments
Post a Comment