Estou tendo problemas com a segunda função. Ele é executado antes que haja um valor salvo em 'w'. Eu tentei setTimout (), mas não ajudou. Estou tentando implementar async / await, mas estou lutando para ver como ele se encaixaria no código abaixo:
function functionOne(){
var s
chrome.storage.local.get(['prm'], function(result) {
s = result.prm;
return s;
});
}
function functionTwo(){
let w = functionOne();
// second half runs after w is assigned a value (after functionOne is done running).
}
Async / await é a única solução ou existe outra maneira de resolvê-lo?
async / await não é a única solução. E em qualquer caso, você vai precisar criar uma promessa na functionOne
/*async*/ function functionOne(){
var s;
var p = new Promise(function(success) {
chrome.storage.local.get(['prm'], function(result) {
s = result.prm;
success(s);
});
}
return p;
}
function functionTwo(){
let p = functionOne();
p.then(function(s) {
//...
});
}
Você precisa criar uma promessa para poder retornar os resultados de chrome.log.storage. Você pode tornar a functionOne assíncrona ou não. Isso não muda nada.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras