this.dorequest()から返された後にグローバル変数となる 'key'にアクセスしたいとします。 ifブロック内にキーを取得しますが、外部のどこにでもアクセスすることはできません。誰かが助けてくれますか?確かにそれはスコープ/巻上げの問題です。前もって感謝します!Javascriptスコープ - スコープ外の値にアクセスできない
答えて
。 varステートメントを削除するだけです。
さらに、console.logステートメントに到着する前に終了していない非同期呼び出しでキー変数を割り当てます。 console.logステートメントをコールバック関数に移動するか、コールバックが完了したときにconsole.logステートメントをトリガするイベントを作成します。
おそらく、非同期コールバック内でグローバルを使用することはお勧めできません。私はあなたのreturn文が何かをしているかどうかは確かではありませんが(使用しているライブラリのAPIに依存しますが)、キー変数を割り当てることはありません。
私はそれを削除しました。しかし、ブロックの外側でreturn文を使用する必要がありますか? hello key undefined ポートでリスンするアプリケーション:8000 これは応答キーです。RES123 –
別の問題があります。非同期呼び出し中に値を割り当てます。つまり、コンソールのログステートメントに入る前にコールが終了していない可能性があります。 console.logステートメントをコールバック関数に移動します。コールバックステートメントでグローバル変数を割り当てるのは良い考えではありません。なぜなら、いつ変化するのか分からないからです。それを楽しくするために、console.logステートメントを無限ループに入れることもできます。 –
window.key
をご利用ください。すべてのグローバルJavaScriptオブジェクト、関数、および変数は、自動的にウィンドウオブジェクトのメンバーになります。あなたはそれその範囲内で別の変数になりブロックスコープでそれを再定義する意味ブロックの内側
var key;
を使用している
コードをクロージャーで囲むか、ウィンドウにキーを追加します。
つまり、window.key = undefined;
は重要な変数グローバル
すなわちwindow.key = undefined.
はまたresponse.body.key
の値をチェッククロージャ内のコードを追加したり、作るのどちらか
- 1. 外部スコープのアクセス変数
- 2. Javascriptメンバー関数スコープ外
- 3. viewModelにアクセスviewModelのスコープ外の
- 4. JavaScript内のスコープ外のInstagramデータにアクセスする
- 5. readFileの外部スコープ変数にアクセス
- 6. スコープ外のクラスデータにアクセスする
- 7. スコープの外で関数の結果にアクセスできません
- 8. クロージャデータにはスコープの外ではアクセスできません
- 9. アクセス$スコープ
- 10. ラムダ式は、スコープ外のクラスのプライベートメソッドにアクセスできますか?
- 11. ng-repeatスコープ外のオプション値にアクセスしました
- 12. は外側のスコープから値にアクセスする
- 13. 親のコントローラで角ディレクティブのスコープにアクセスできない
- 14. 簡単な例ではスコープにアクセスできない
- 15. 関数スコープ外の変数へのアクセス
- 16. JavaScriptスコープ
- 17. AngularJs 1.6 - ディレクティブの 'link'関数で親スコープにアクセスできない
- 18. スカラリフトのスコープ付きjavascriptコールバック
- 19. 同じコントローラ内のスコープにアクセスできない:AngularJS
- 20. 角2 - SignalRスコープのコンポーネントメンバー/メソッドにアクセスできない
- 21. JavaScriptファンクションレベルのスコープ
- 22. javascript可変スコープの外部関数
- 23. Spring WebSocketハンドラ( "websocket"スコープではない)内の "session"スコープBeanへのアクセス方法
- 24. HTMLからスコープ変数にアクセスできない
- 25. angularjsの$ timeoutのスコープにアクセス
- 26. スコープ、C#での可変アクセス
- 27. このコールバックが外部スコープの正しい値にアクセスしないのはなぜですか?
- 28. Javascriptスコープ変数
- 29. javascript変数スコープ
- 30. JavaScriptホイストとスコープ
が重複する可能性[私は非同期呼び出しからの応答を返すにはどうしますか?]( http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –