このようなご質問がとても多いのですが、なかなか思い通りのものが作れませんでした。私のコードは次のようになります。一部は chrome.storage に格納されており、関数でそれらの 1 つを返しpubKeyProfiles
たいと考えています。getProfile
getProfile(keyPairId){
var profile = null;
chrome.storage.local.get({ pubKeyProfiles : [] }, function (result) {
var pubKeyProfiles = result.pubKeyProfiles;
for (var i = 0; i < pubKeyProfiles.length; ++i) {
if(pubKeyProfiles[i].pubKey.keyId === keyPairId){
profile = pubKeyProfiles[i];
}
}
});
console.log(profile);
}
非同期コールバック関数から値を返す方法を読んだ後? 、次のコードを試しました:
getProfile(keyPairId){
var profile = null;
function foo(fn){
chrome.storage.local.get({ pubKeyProfiles : [] }, function (result) {
var pubKeyProfiles = result.pubKeyProfiles;
for (var i = 0; i < pubKeyProfiles.length; ++i) {
if(pubKeyProfiles[i].pubKey.keyId === keyPairId){
profile = pubKeyProfiles[i];
fn(profile);
}
}
});
}
foo(function(profile){
return profile;
});
console.log(profile);
}
しかし、私は非同期関数を扱っているので、プロファイルはnull
何をしようとしても残ります。
getProfile
私の質問は次のとおりです。関数を返すにはどうすればよいですかprofile
??