ブラウザの指紋を取得するために、fingerprintjs2 JavaScriptライブラリを使用しようとしています。JavaScriptの関数パラメータからの戻り値
次のコードは、[OK]を動作します。しかし、私は例えば、後で使用するために、このブロックの外で変数を設定したい
new Fingerprint2().get(function (result) {
var output = result;
document.write(output);
});
:
var output;
new Fingerprint2().get(function (result) {
output = result;
});
document.write(output);
が、この場合には、私が取得出力:
undefined
私はこれがスコープに関連していると推測していますので、tで変数を設定する方法はありますか彼は外側のスコープ、またはこの関数呼び出しの中に次のコードをすべて入れる必要がありますか?
ネストされた関数の価値を得ることについて他の質問を読んだことがありますが、この場合は動作しないようです。
"範囲に関連しています" - いいえ、 'document.write(output);を' output = result; 'が実行される前に呼び出すためです。 – Igor
' document.write(output); 'コールバック –
getコールは非同期で実行されるので、 '$ .get()'コールがまだ実行されている間に 'document.write(output)'が呼び出されます。 – theClap