ライブラリで呼び出している変数の値を変更したいのですが、スコープに問題があると思われます。私のコードは次のようになります:ライブラリ呼び出し内の外部変数値を変更する
var data = "";
abc.abc(lat, long).then(function(x) {
data = x;
console.log(data);
});
console.log(data);
最初の出力はxの値を示しますが、2番目の出力はまだ空です。私は間違って何をしていますか?
注:abcは、約束を使用する外部ライブラリです。
'.then()'に渡すコールバックは、最後の行の 'console.log()'の後に実行されます。非同期処理の完了後、 .abc() 'が始まりました。それは約束のポイントのようなものです... – nnnnnn
私は約束を使用してはいけませんか?データを変更する方法はありますか? – apr
いいえ、あなたは約束を使用するべきです - そして、それが外部ライブラリがどのように動作するかは実際には選択肢がないかもしれません。しかし、値を使って何をしたいのかは、 '.then()'コールバック(またはそこから呼び出す関数)の中で行われるように、コードを構造化する必要があります。 – nnnnnn