2017-05-24 2 views
0

Ich baue Chrome Erweiterung mit Javascript. Hier ist mein Code:Javascript async/warten auf Versprechen Rückkehr ausstehend, wie Sie den Wert sofort erhalten?

async function getlocalstorage() { 
    var theresult = ''; 
    await new Promise(function(resolve, reject){ 
     chrome.runtime.sendMessage({action:'getlocalstorage',data:"version"}, function(response){ 
      if (response.data!=='null') { 
       theresult = resolve(response.data); 
      } else { 
       theresult = reject(response.data); 
      } 
     }); 
    }) 
    return theresult; 
} 

window.onload = function(){ 
    console.log('this should be the first output'); 
    /*it's returning pending status*/ 
    console.log(getlocalstorage()); 
    console.log('this should be the last output'); 
} 

aber die Rückkehr von console.log (getlocalstorage()); ist ausstehend. . . wie geht das ?

+0

Meinten Sie: warten –

Antwort

0

Sie können den Wert nicht sofort abrufen, da getlocalstorage asynchron ist. Sie können jedoch in der von Ihnen erwarteten Reihenfolge in die Konsole schreiben. Sprechen Sie die onload Funktion async und warten auf den Wert von getlocalstorage():

window.onload = async function(){ 
    console.log('this should be the first output'); 
    console.log(await getlocalstorage()); 
    console.log('this should be the last output'); 
} 
Verwandte Themen